Как обращаться с аутентификацией ASP.NET - PullRequest
0 голосов
/ 02 декабря 2009

У меня следующая проблема: Я хочу защитить доступ к некоторым файлам, размещенным под IIS, используя страницу asp.net. Страница будет вызываться из другого приложения, используя:

var request = WebRequest.Create("www.smth.com/protectData.aspx") 
              as HttpWebRequest;
request.Credentials = new NetworkCredentials("john doe", "john"); 
request.PreAuthenticate = true; 
var response = request.GetResponse(); 

Как прочитать учетные данные, отправленные на вызываемую страницу (protectData.aspx)?

У меня есть код для проверки учетных данных ... Я пытался реализовать пользовательское членство, но HttpContext.Current.User пусто. Страница aspx размещается в веб-приложении, в котором размещена служба WCF, аутентифицированная с помощью Пользовательская политика:

system.serviceModel>
serviceAuthorization PrincipalPermissionMode = "Пользовательский"
authorizationPolicies
add policyType = "CustomPolicy.CustomPolicy, CustomPolicy" />
authorizationPolicies
system.serviceModel

Для страниц aspx у меня пока нет защиты, в основном я хочу просто получить учетные данные из запроса и проверить их с использованием существующего кода.

Любая помощь приветствуется, Адриан

1 Ответ

1 голос
/ 02 декабря 2009

У вас есть два варианта. Вы можете использовать HTTP-аутентификацию транспорта или аутентификацию на основе форм.

Для проверки подлинности транспорта вам нужно настроить IIS для защиты ресурса, к которому клиент пытается получить доступ. Этот ресурс может быть вашим файлом или страницей ASPX. Страница ASPX сможет прочитать переменную HttpContext.Current.User и решить, сможет ли этот пользователь получить доступ к ресурсу.

Для проверки подлинности на основе форм IIS не требуется проверять подлинность запроса. Вместо этого вы отправляете сообщение Forms в веб-форму, которая затем может просмотреть имя пользователя / пароль в запросе и решить, разрешить ли доступ или нет.

Разновидностью Authe Based Auth (FBA) является размещение имени пользователя / пароля в теле POST, чтобы страница ASPX могла затем прочитать, декодировать и решить, разрешить ли доступ.

...