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

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

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

Заранее спасибо
...
Рейтинг: 0 / 0
аутентификация в веб-сервисах
    #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
аутентификация в веб-сервисах
    #33911914
Dimon aka Manowar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну прям таки. Можно и Forms реализовать при желании.

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

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

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

У меня сделано так. Перед началом работы с web-сервисом необходимо вызвать метод AuthenticateUser,
который проверяет имя и пароль (переданные параметрами), создает куку и привязывает ее к контексту.
При вызове метода web-сервиса сам-же метод проверяет куку, и, если ее нет, отсылает признак ошибки.
Все. Клиенту остается поймать куку после аутентификации, сохранить ее и прикреплять ее каждый раз
к контексту вызова каждый раз при вызове метода web-сервиса. У меня второй слой — web-приложение.
И эта кука упаковывается вторично и уже через стандартную forms-аутентификацию уходит на клиента —
т.е. на клиентский браузер.
...
Рейтинг: 0 / 0
аутентификация в веб-сервисах
    #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
аутентификация в веб-сервисах
    #33913090
Nikolay_Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L>а зачем тогда эту куку сохранять? ведь есть к примеру кука сессии? ее можно использовать, чтобы посмотреть в сессии была ли пройдена аутентификация. или я что-то недопонимаю?
У меня сделано так, для того, чтобы пользователь был независим от состояния сессий на серверах (как web-приложения, так и web-сервиса). Я храню в куке только ID пользователя. На web-приложении вообще ничего не хранится, в кеше web-сервиса у меня хранится структура о пользователе. Если сервер перезагружает кеш, или сбрасывает сессии, то просто восстанавливаю структуру, и все.
...
Рейтинг: 0 / 0
аутентификация в веб-сервисах
    #33913186
lumf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Nikolay_Ch, Вы писали:

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

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


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