Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Web Service HTTP Basic Authentication, Не отправляется заголовок Authentication 
V
    Опции темы
emmanuil
  Дата 27.8.2011, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 9.1.2007

Репутация: нет
Всего: 3



Всем привет!
Столкнулся с такой проблемой. Нужно реализовать простою аутентификацию через логин/пароль.
Простая веб-служба, .net 4.0, IIS 5.1.
Для сервиса реализовал http module, для того чтобы самому проверять.
В конфиге:
Код

    <authentication mode="None" />
    <authorization>
      <deny users="?"/>
    </authorization>

От клиента отправляю так:
Код

            using (var cl = new BankService()) {
                CredentialCache credCache = new CredentialCache();
                NetworkCredential netCred = new NetworkCredential("TestUser", "testpassword");
                credCache.Add(new Uri(cl.Url), "Basic", netCred);
                cl.Credentials = credCache;

Но в http модуль не приходит никаких заголовков связанных с авторизацией (HttpContext.Current.Request.Headers["Authorization"]).
Кто знает, как сделать?
PM MAIL   Вверх
jonie
Дата 29.8.2011, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



Цитата(emmanuil @  27.8.2011,  08:27 Найти цитируемый пост)

Для сервиса реализовал http module, для того чтобы самому проверять.

а зачем, если надо было писать обычный MembershipProvider и использовать стандартную систему аутентификации?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
emmanuil
Дата 29.8.2011, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 9.1.2007

Репутация: нет
Всего: 3



jonie, спасибо за совет!

Цитата(jonie @  29.8.2011,  11:08 Найти цитируемый пост)
а зачем, если надо было писать обычный MembershipProvider и использовать стандартную систему аутентификации? 

Потому что не знал про MembershipProvider. smile Почитаю. На первый взгляд, много логики в нем. Мне нужна простая аутентификация, которую я сам контролирую.
А стандартная система аутентификации это какая? Windows, Forms, Passport?
Реализация своего модуля авторизации показалось простым решением. Есть способ проще?
Покапаю еще в сторону MembershipProvider. Как в этом случае отправлять с клиента данные для авторизации?

Меня еще очень интересует, почему не приходит заголовок с логином/паролем на сервер в моем примере? Или он даже не отправляется с клиента?!
Может IIS нужно как то настраивать?

PM MAIL   Вверх
jonie
Дата 29.8.2011, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



Цитата(emmanuil @  29.8.2011,  14:34 Найти цитируемый пост)

Потому что не знал про MembershipProvider. smile Почитаю. На первый взгляд, много логики в нем. Мне нужна простая 

там одну функцию надо реализовать всего лишь
Код

public override bool ValidateUser(string username, string password)

остальное нафиг не надо.

Цитата


А стандартная система аутентификации это какая? Windows, Forms, Passport?
в конфиге IIS настраивается ж... Вообще Forms все как-то привыкли юзать, но в интранет приложениях прокатывает и Windows. В корпаративных Passport...

Цитата

Как в этом случае отправлять с клиента данные для авторизации?

так:
Код

                var rv = new DataServiceClient();
                rv.ClientCredentials.UserName.UserName = _login;
                rv.ClientCredentials.UserName.Password = _password;


Это сообщение отредактировал(а) jonie - 29.8.2011, 14:29


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
emmanuil
Дата 5.9.2011, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 9.1.2007

Репутация: нет
Всего: 3



Попробовал с провайдером.
Сразу не оговорил, что клиентом сервиса не обязательно должен быть .NET/Windows.
Нашел причину, почему не приходят заголовки - http://www.intellitechture.com/Calling-web...authentication/
Большое спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.