Получение домена \ имени пользователя для веб-приложения в интрасети без входа в систему
У меня есть веб-приложение в нашей интрасети (VS 2005). Есть пара страниц, которые не требуют входа пользователя в приложение (обратная связь и страница по умолчанию). Я пытаюсь получить домен и имя пользователя для отображения и / или отправить с обратной связью. Есть ли способ сделать это, не требуя входа пользователя? я пробовал this.Request.ServerVariables["LOGON_USER"]
а также this.User.Identity.Name
, но ни один из них не работал.
Редактировать:
Я должен был упомянуть, что большинство пользователей имеют Windows 2000 на своих машинах. Он работает на моей машине разработки (XP), но не в производственной сети (где у меня есть 2000).
2 ответа
Тереза, я думаю, это то, что ты ищешь...
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsPrincipal principal = (WindowsPrincipal)Thread.CurrentPrincipal;
WindowsIdentity identity = (WindowsIdentity)principal.Identity;
String userName= principal.Identity.Name;
Предполагая, что вы включили проверку подлинности Windows в IIS для своего сайта:
public string user_Name
{
get
{
string x = Page.User.Identity.Name;
x = x.Replace("YOURDOMAIN\\", "");
return x;
}
}
X = x.Replace("ДОМЕН \", ""); удаляет раздел DOMAIN учетной записи пользователя, например, NISSAN\rmcdonough