Аутентификация Windows запрашивает имя пользователя / пароль - PullRequest
9 голосов
/ 03 марта 2009

Я пытаюсь развернуть приложение в клиентской сети с 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 для получения имени пользователя. Однако я не хочу, чтобы всплывало имя пользователя / пароль. Я хочу, чтобы приложение аутентифицировало пользователя на основе его сетевых учетных данных.

Я что-то упустил?

Ответы [ 7 ]

3 голосов
/ 20 июля 2011

Ваша конфигурация в IIS неверна - отключите анонимный доступ, затем включится встроенная аутентификация, если вы также установили ее в своем файле web.config через

<configuration>
    <system.web>
        <authentication mode="Windows" />
    </system.web>
</configuration>
3 голосов
/ 22 марта 2009

Убедитесь, что интернет-обозреватель знает, что сайт является частью локальной интрасети. Также в настройках зоны интрасети убедитесь, что автоматический вход включен.

1 голос
/ 14 февраля 2018

Вы не хотите изменять какие-либо настройки в файле we.config. В диспетчере IS-сервера в разделе Аутентификация сайта включите только аутентификацию Windows и отключите другие аутентификации. введите описание изображения здесь

Для аутентификации Windows требуются учетные данные = windows для аутентификации пользователя. Вот причина, чтобы подсказать логин. Чтобы избежать этого, вам нужно установить в своем клиентском браузере IP своего сайта или домена как надежный интранет-сайт. Для этого;

1) Зайдите в настройки браузера -> Открыть настройки прокси -> Безопасность -> Локальная интрасеть -> Сайты -> Дополнительно

2) Затем добавьте домен вашего сайта или IP-адрес введите описание изображения здесь

Теперь посмотрим, исправна ли ваша проблема после кеширования в браузере.

Эта работа для меня. :)

Проверьте это также Получение приглашения на вход с использованием встроенной аутентификации Windows

0 голосов
/ 14 февраля 2018

Вы не хотите изменять какие-либо настройки в файле we.config. В диспетчере IS-сервера в разделе Аутентификация сайта включите только аутентификацию Windows и отключите другие аутентификации. введите описание изображения здесь

Для аутентификации Windows требуются учетные данные = windows для аутентификации пользователя. Вот причина, чтобы подсказать логин. Чтобы избежать этого, вам нужно установить в своем клиентском браузере IP своего сайта или домена как надежный интранет-сайт. Для этого;

1) Зайдите в настройки браузера -> Открыть настройки прокси -> Безопасность -> Локальная интрасеть -> Сайты -> Дополнительно

2) Затем добавьте домен вашего сайта или IP-адрес введите описание изображения здесь

Теперь посмотрим, исправна ли ваша проблема после кеширования в браузере.

Эта работа для меня. :)

0 голосов
/ 12 июля 2012

Я думаю, что вы не можете управлять им из серверного приложения, это функция браузера для передачи учетных данных, в IE вы можете порекомендовать своим пользователям установить флажок «включить встроенную проверку подлинности Windows» в настройках Интернета -> расширенный

0 голосов
/ 22 марта 2009

Выбран ли «Включить встроенную проверку подлинности Windows» в параметрах Интернета в IE?

Имеют ли вводимые вами IUSR_ и имя пользователя разрешения на чтение и выполнение для каталога, в котором размещено приложение?

Находится ли каталог приложения на сервере IIS или находится на общем ресурсе, где вступают в силу разрешения для общего ресурса Windows?

0 голосов
/ 03 марта 2009

Какой URL использует ваш сайт, и что такое зона IE? Если ваше приложение работает за пределами зоны LocalIntranet, сквозная аутентификация блокируется, всегда запрашивая имя пользователя и пароль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...