Как сделать так, чтобы браузер отображал запрос аутентификации пользователя по умолчанию? - PullRequest
1 голос
/ 14 апреля 2020

У меня есть MVC приложение в C#. Мне нужно, чтобы запросить всплывающее окно входа в систему для проверки подлинности браузера по умолчанию, как показано ниже:

enter image description here

Затем приложение должно проверить его с помощью Active Directory и получить некоторые другая информация о пользователе из AD.

У меня нет проблем с проверкой и получением информации о пользователе из AD, если у меня есть имя пользователя.

Поэтому мой вопрос заключается в том, как мне сделать браузер подскажите такой модальный диалог и как я могу получить доступ к вводу пользователя, чтобы проверить его с помощью моей AD?

Вот что у меня так далеко. Код будет получать имя пользователя только от имени пользователя входа в систему и не будет отображать всплывающее окно:

private string GetUsernameFromLogon()
    {
        string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
        int index = userName.LastIndexOf("\\");
        if (index > 0)
            return userName.Substring(index+1);
        else
            return null;
    }

1 Ответ

0 голосов
/ 14 апреля 2020

Браузеру нужно сообщить, что он должен обеспечивать базовую аутентификацию c в последующих HTTP-запросах. Для этого вам нужно установить HTTP-заголовок:

"WWW-Authenticate", "Basic"

Это сообщит браузеру, что следующий запрос будет иметь базовые c аутентификационные кредиты

Вот это C# пример:

Response.Clear();
Response.StatusCode = (Int32)HttpStatusCode.Unauthorized;
Response.AddHeader("WWW-Authenticate", "Basic");
...