Я пытаюсь развернуть приложение в клиентской сети с AD / контроллером домена.
Мое приложение представляет собой простое приложение asp.net c #, использующее проверку подлинности Windows.
Я использую win2003.
По сути, используя VS2008, создайте новый веб-сайт, размещенный на IIS6.0.
Всего 2 изменения.
1. В службе безопасности IIS для приложения включена функция «Интегрированная безопасность».
Примечание: анонимность также включена.
Только одно изменение в сгенерированном коде скелета.
Добавьте ниже к методу page_load default.aspx
using System.Security.Principal;
...
protected void Page_Load(object sender, EventArgs e)
{
WindowsIdentity id = WindowsIdentity.GetCurrent();
Response.Write("<B>Windows Identity Check</B><br>");
Response.Write("Name: " + id.Name + "<br>");
Response.Write("<BR>");
Response.Write("User.Identity: " + User.Identity.Name);
Response.Write("<BR>");
}
Вывод просмотра на страницу:
Проверка подлинности Windows - имя: NT AUTHORITY \ NETWORK SERVICE
User.Identity:
User.Identity.Name не выводит текущее имя пользователя.
Как обсуждено в этой статье http://weblogs.asp.net/scottgu/archive/2006/07/12/Recipe_3A00_-Enabling-Windows-Authentication-within-an-Intranet-ASP.NET-Web-application.aspx
Я добавил:
<authorization>
<deny users="?"/>
</authorization>
Из того, что я userstand, является то, что, когда это добавлено, я могу получить текущих пользователей, username от User.Identity.Name.
Однако, как только я добавил выше, браузер теперь запрашивает у меня имя пользователя и пароль. Как только я вхожу в него, я могу использовать User.Identity.Name для получения имени пользователя. Однако я не хочу, чтобы всплывало имя пользователя / пароль. Я хочу, чтобы приложение аутентифицировало пользователя на основе его сетевых учетных данных.
Я что-то упустил?