Запрашивать данные для входа при использовании встроенной аутентификации Windows - PullRequest
2 голосов
/ 06 октября 2009

Для приложения ASP.NET, как я могу запросить у пользователя его имя пользователя / пароль при использовании встроенной аутентификации Windows? Я хотел бы использовать C # в коде позади страниц, чтобы сделать это.

Я хочу, чтобы на некоторых страницах (например, http://intranet/admin/)) запрашивался пароль, а другие автоматически переходили (через IWA / NTLM). Затем я хотел бы вспомнить, что пользователь вошел в систему, когда они посещают другие страниц в папке / сайте и предлагают ссылку для выхода, когда они будут завершены.

Edit: Я хочу отправить пользователю статус 401 и заголовки WWW-аутентификации, чтобы они могли войти в систему, используя свои учетные данные Windows.

По сути, как это делает Firefox / IE, если сайт не является доверенным.

Редактировать 2: SharePoint делает такие вещи, когда вы автоматически входите в систему, но можете выйти из системы и войти в нее как кто-либо другой, не выходя из Windows.

Редактировать 3:

Пример (кроме SharePoint): вы вошли как стандартный пользователь Windows / Active Directory (с ограниченным доступом) на доверенный сайт, который передает ваши учетные данные. Затем вы хотите войти в административную часть сайта с другими учетными данными (но все же Windows, а не WebForms). Единственный другой способ сделать это, если вы выйдете из Windows, а затем войдите снова. Непрактично, если у вас открыты файлы (к которым вы, возможно, захотите получить доступ) или администратор не может войти в систему локально (привилегия интерактивного входа отключена). Олицетворение может быть установлено, так как страница разрешает доступ к приложениям, которые недоступны обычной учетной записи пользователя (например, базы данных, файлы, администратор Active Directory).

По сути, страница внутри сайта ведет себя так, как будто она не входит в зону надежных сайтов.

Ответы [ 2 ]

1 голос
/ 06 октября 2009

Похоже, вам нужно использовать олицетворение. Это позволяет вам «работать от имени» другого пользователя Windows. Смотрите здесь: Олицетворение ASP.NET

Вот несколько примеров CodeProject:

Олицетворение Windows с использованием C #

Олицетворение пользователя в .NET

0 голосов
/ 06 октября 2009

Нет отдельного кода для этого.

Когда пользователь / клиент открывает конкретную страницу, например, http://intranet/admin/index.aspx

если вы настроите конкретную папку с аутентификацией Windows, браузер будет

автоматически запрашивает имя пользователя и пароль конкретного пользователя / клиента.

так что это конфигурация, которую вы должны сделать в IIS для конкретной папки

, к которому вы хотите применить встроенную проверку подлинности Windows.

...