Получение домена \ имени пользователя для веб-приложения в интрасети без входа в систему

У меня есть веб-приложение в нашей интрасети (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

Другие вопросы по тегам