Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / аутентификация в веб-сервисах / 13 сообщений из 13, страница 1 из 1
10.08.2006, 22:49
    #33911771
lumf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аутентификация в веб-сервисах
Привет, Все.

Почитал тут про аутентификацию в веб-сервисах. Сказано что можно использовать только windows-аутентификацию. Мне этот вариант не подходит.

Расскажите какие вообще используются методы? Чтобы безопасно и желательно как можно меньше усилий.. или ссылочку дайте.

Заранее спасибо
...
Рейтинг: 0 / 0
11.08.2006, 00:59
    #33911875
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аутентификация в веб-сервисах
В MSDN есть. Там где про Entreprise Examples пишут есть такой пример

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
/// <summary>
///     Retrieves a dataset containing up to maxQty items that fullfill a 
///     Topic search.
///     <param name="userName">User name for logon.</param>
///     <param name="password">Password for logon.</param>
///     <param name="topicName">Specifies the topic to search for.</param>
///     <param name="maxQty">The maximum number of items to return.</param>
///     <retvalue>
///         A dataset containing up to maxQty items that Fulfill the a Topic 
///         search or a minimal dataset containing error information.
///     </retvalue>
/// </summary>
[WebMethod()]
public DataSet GetBooksByTopicSecure(String userName, String password, String topicName, int maxQty)
{
    ExportData exportData = new ExportData();
    exportData.InitContract();
        
    DataRow contractRow = exportData.Tables[ExportData.CONTRACT_TABLE].Rows[ 0 ];


    try
    {
        SHA1 sha1 = SHA1.Create();
        byte [] bytePassword = sha1.ComputeHash(Encoding.Unicode.GetBytes(password));

        // logon
        CustomerData customer = (new CustomerSystem()).GetCustomerByEmail(userName, bytePassword);

        if (customer == null)
        {
            contractRow[ExportData.ERROR_FIELD] = "Invalid userName/password";
        }
        else
      {
            //get the book data            
            GetBookData(exportData, topicName, maxQty);
        }
   }
   catch
   {
        //return error 
      contractRow[ExportData.ERROR_FIELD] = "Service unavailable";
   }
    
    exportData.AcceptChanges();
   return exportData;
    
    
}
Ну, сооттветсвенно, для решения проблемы пересылки пароля в безопасном режиме изображаем следующее

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
This security problem can be resolved by adding a <webServices> section to the web.config file: 

<configuration>
...
<system.web>
...
        <webServices>
            <protocols>
              <remove name="HttpGet"/> 
            </protocols>
        </webServices>
 
...
Рейтинг: 0 / 0
11.08.2006, 02:07
    #33911914
Dimon aka Manowar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аутентификация в веб-сервисах
ну прям таки. Можно и Forms реализовать при желании.

Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
...
Рейтинг: 0 / 0
11.08.2006, 08:57
    #33912067
Nikolay_Ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аутентификация в веб-сервисах
L>Расскажите какие вообще используются методы? Чтобы безопасно и желательно как можно меньше усилий.. или ссылочку дайте.
Я использую Forms
...
Рейтинг: 0 / 0
11.08.2006, 08:58
    #33912069
Nikolay_Ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аутентификация в веб-сервисах
L>Расскажите какие вообще используются методы? Чтобы безопасно и желательно как можно меньше усилий.. или ссылочку дайте.
Я использую Forms
...
Рейтинг: 0 / 0
11.08.2006, 09:25
    #33912130
Nikolay_Ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аутентификация в веб-сервисах
L>Расскажите какие вообще используются методы? Чтобы безопасно и желательно как можно меньше усилий.. или ссылочку дайте.
Я использую Forms
...
Рейтинг: 0 / 0
11.08.2006, 10:11
    #33912271
Nikolay_Ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аутентификация в веб-сервисах
L>Расскажите какие вообще используются методы? Чтобы безопасно и желательно как можно меньше усилий.. или ссылочку дайте.
Я использую Forms
...
Рейтинг: 0 / 0
11.08.2006, 10:44
    #33912394
lumf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аутентификация в веб-сервисах
Здравствуйте, Nikolay_Ch, Вы писали:

L>>Расскажите какие вообще используются методы? Чтобы безопасно и желательно как можно меньше усилий.. или ссылочку дайте.
N_C>Я использую Forms

А поподробнее можно? Потому как вот это у меня не работает
if (!Context.Request.IsAuthenticated )
или мне вручную аутентификационную куку проверять?
...
Рейтинг: 0 / 0
11.08.2006, 11:10
    #33912522
Nikolay_Ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аутентификация в веб-сервисах
L>А поподробнее можно? Потому как вот это у меня не работает
L>if (!Context.Request.IsAuthenticated )
L>или мне вручную аутентификационную куку проверять?
Вручную. Сам делаешь, сам извлекаешь.

У меня сделано так. Перед началом работы с web-сервисом необходимо вызвать метод AuthenticateUser,
который проверяет имя и пароль (переданные параметрами), создает куку и привязывает ее к контексту.
При вызове метода web-сервиса сам-же метод проверяет куку, и, если ее нет, отсылает признак ошибки.
Все. Клиенту остается поймать куку после аутентификации, сохранить ее и прикреплять ее каждый раз
к контексту вызова каждый раз при вызове метода web-сервиса. У меня второй слой — web-приложение.
И эта кука упаковывается вторично и уже через стандартную forms-аутентификацию уходит на клиента —
т.е. на клиентский браузер.
...
Рейтинг: 0 / 0
11.08.2006, 12:19
    #33912851
lumf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аутентификация в веб-сервисах
Здравствуйте, Nikolay_Ch, Вы писали:

L>>А поподробнее можно? Потому как вот это у меня не работает
L>>if (!Context.Request.IsAuthenticated )
L>>или мне вручную аутентификационную куку проверять?
N_C>Вручную. Сам делаешь, сам извлекаешь.

N_C>У меня сделано так. Перед началом работы с web-сервисом необходимо вызвать метод AuthenticateUser,
N_C>который проверяет имя и пароль (переданные параметрами), создает куку и привязывает ее к контексту.
N_C>При вызове метода web-сервиса сам-же метод проверяет куку, и, если ее нет, отсылает признак ошибки.
N_C>Все. Клиенту остается поймать куку после аутентификации, сохранить ее и прикреплять ее каждый раз
N_C>к контексту вызова каждый раз при вызове метода web-сервиса. У меня второй слой — web-приложение.
N_C>И эта кука упаковывается вторично и уже через стандартную forms-аутентификацию уходит на клиента -
N_C>т.е. на клиентский браузер.

а зачем тогда эту куку сохранять? ведь есть к примеру кука сессии? ее можно использовать, чтобы посмотреть в сессии была ли пройдена аутентификация. или я что-то недопонимаю?
...
Рейтинг: 0 / 0
11.08.2006, 13:16
    #33913090
Nikolay_Ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аутентификация в веб-сервисах
L>а зачем тогда эту куку сохранять? ведь есть к примеру кука сессии? ее можно использовать, чтобы посмотреть в сессии была ли пройдена аутентификация. или я что-то недопонимаю?
У меня сделано так, для того, чтобы пользователь был независим от состояния сессий на серверах (как web-приложения, так и web-сервиса). Я храню в куке только ID пользователя. На web-приложении вообще ничего не хранится, в кеше web-сервиса у меня хранится структура о пользователе. Если сервер перезагружает кеш, или сбрасывает сессии, то просто восстанавливаю структуру, и все.
...
Рейтинг: 0 / 0
11.08.2006, 13:43
    #33913186
lumf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аутентификация в веб-сервисах
Здравствуйте, Nikolay_Ch, Вы писали:

L>>а зачем тогда эту куку сохранять? ведь есть к примеру кука сессии? ее можно использовать, чтобы посмотреть в сессии была ли пройдена аутентификация. или я что-то недопонимаю?
N_C>У меня сделано так, для того, чтобы пользователь был независим от состояния сессий на серверах (как web-приложения, так и web-сервиса). Я храню в куке только ID пользователя. На web-приложении вообще ничего не хранится, в кеше web-сервиса у меня хранится структура о пользователе. Если сервер перезагружает кеш, или сбрасывает сессии, то просто восстанавливаю структуру, и все.

то ест если я подглядел id пользователя, то я могу легко пользоваться твои сервисом? так получается?
...
Рейтинг: 0 / 0
11.08.2006, 14:00
    #33913257
Nikolay_Ch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аутентификация в веб-сервисах
L>то ест если я подглядел id пользователя, то я могу легко пользоваться твои сервисом? так получается?
Для этого надо расшифровать куку, что очень проблематично.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / аутентификация в веб-сервисах / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]