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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Защита web-service?.. от несанкционированного доступа?.. 
:(
    Опции темы
Kurt
Дата 10.7.2005, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


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

Репутация: 1
Всего: 36



Допустим, я написал web-service, к-й возвращает некий датасет из базы данных. Возникает вопрос - а как зищитить такие данные от несанкционированного доступа?
Например, если я хочу, чтоб эти данные получали лишь те, кто смогут правильно указать логин/пароль?
Как правильно организовывается защита web-sevice?


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
mr.DUDA
Дата 10.7.2005, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Нужно организовать аутентификацию на базе Windows Basic или других технологий в своём веб-приложении. Если надо, могу более подробно объяснить, что нужно сделать, и как.


--------------------
user posted image
PM MAIL WWW   Вверх
Kurt
Дата 10.7.2005, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


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

Репутация: 1
Всего: 36



Цитата
Если надо, могу более подробно объяснить, что нужно сделать, и как.

Если есть возможность/время, с удовольствием бы почитал..


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
mr.DUDA
Дата 11.7.2005, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Нужно добавить пользователя в систему (в домен или в локальные пользователи компьютера, на котором установлен IIS), после чего добавить в Global.asax.cs обработчик события AuthenticateRequest:
Код
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
    WindowsIdentity id = (WindowsIdentity)User.Identity;
    if (id.IsAnonymous || !id.IsAuthenticated)
    {
        this.CompleteRequest();
        HttpResponse r = Response;
        r.StatusCode = (int)HttpStatusCode.Unauthorized;
        r.StatusDescription = "Anonymous request is forbidden.";
        r.ContentType = "text/plain";
    }
}


В Web.config должен быть прописан способ аутентификации "Windows":
Код

    <authentication mode="Windows" />

, а в IIS должен быть отключен анонимный доступ.

В таком случае, доступ к Web-сервису будет разрешён только для пользователей, зарегистрированных на сервере. Со стороны клиентского приложения требуется при создании объекта прокси "myservice" проинициализировать свойства myservice.Credentials (создать объект NetworkCredentials с именем пользователя, паролем и если надо - именем домена), myservice.PreAuthenticate (выставить true), и для работы через прокси - установить свойство myservice.UnsafeAuthenticatedConnectionSharing = true, св-во myservice.Proxy (подойдёт WebProxy.GetDefaultProxy()) и myservice.Proxy.Credentials (то же значение, что и в Credentials).


--------------------
user posted image
PM MAIL WWW   Вверх
artskif
Дата 10.4.2006, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вопрос по этой же теме

У меня есть такой код

Код

HttpChannel http = new HttpChannel();

            ChannelServices.RegisterChannel(http);

            Hello obj = (Hello)Activator.GetObject(typeof(Hello), "http://localhost/simplehello/SimpleHelloWorld.soap");
    


Сервер требует авторизации....

вот эта строчка тоже есть
Код

<authentication mode="Windows" />


Вопрос: Как мне прикрутить сюда авторизацию?
PM MAIL   Вверх
arilou
Дата 17.4.2006, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

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



Цитата(artskif @  10.4.2006,  10:18 Найти цитируемый пост)
Вопрос по этой же теме 

Не совсем по этой же smile У тебя речь идет о Remoting, как я понял. Так вот, чтобы реализовать аутентификацию для Remoting'а, публиковать классы надо через IIS со включенной Windows авторизацией. Это единственно возможный вариант. 


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
GarryCSharp
Дата 6.6.2007, 07:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А как подключитьться к IIS если на нём стоит аутентификация по сертификату и стандартная по Windows????
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

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

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

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


 




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


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

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