Может ли имя пользователя Windows автоматически определяться без необходимости входа пользователя с использованием своего имени пользователя и пароля для веб-приложения?Этот пользователь, конечно, вошел бы в Windows с тем же именем пользователя Active Directory.
Пока я вижу, что если у меня есть настройка веб-приложения в IIS, подключающегося как пользователь (пароль)через аутентификацию) с использованием пула приложений с идентификатором NetworkService и NetworkService с Чтением и выполнением , Список содержимого папки и Чтение , затем происходит одно из трех:
- При включенной анонимной аутентификации и включенной аутентификации с помощью форм веб-страница возвращает имя хоста IIS как Environment.UserName и, следовательно, не может получитьимя пользователя пользователя автоматически.
- При включенной анонимной аутентификации, включенном олицетворении ASP.NET и включенной аутентификации с помощью форм веб-страница возвращает IUSR как Environment.UserName и, следовательно, не может автоматически получить имя пользователя пользователя автоматически.
- При включенной аутентификации Windows, apВ окне операции запрашивается имя пользователя и пароль пользователя.
Я просматриваю Environment.UserName на Page_Load:
protected void Page_Load(object sender, EventArgs e)
{
//Set username on interface
txtUsername.Text = Environment.UserName;
}
И если я спрашиваю у пользователя учетные данные, ябудет использовать:
//Determine if user entered the correct username and password
bool AuthenticatedViaAD = DomainContext.ValidateCredentials(loginModule.UserName, loginModule.Password);
То, что я надеюсь использовать, не спрашивая у пользователя его имя пользователя, это:
//Get current user
UserPrincipal currentUser = UserPrincipal.FindByIdentity(DomainContext, Environment.UserName);
Page.User.Identity.Name заполняется соответствующим образом после того, как пользователь вводит свое имя пользователя и пароль с включенной аутентификацией Windows:
txtPageUser.Text = Page.User.Identity.Name;