Получить имя пользователя, обращающегося к странице интрасети ASP.NET в локальной сети - PullRequest
4 голосов
/ 17 апреля 2009

У нас есть сайт интрасети ASP.NET, доступный пользователям, которые физически находятся на локальном компьютере и подключены к нему, либо пользователям, которые подключаются удаленно через VPN. Есть ли способ автоматически получить имя пользователя, который обращается к странице, на основе имени, используемого для входа на локальный компьютер или для VPN?

Ответы [ 5 ]

13 голосов
/ 17 апреля 2009

Это возможно, если вы используете проверку подлинности Windows на своих страницах.

Вы можете использовать либо Page.User.Identity.Name, либо более полный System.Web.HttpContext.Current.User.Identity.Name.

Подробнее об этом здесь:

Включение проверки подлинности Windows в веб-приложении ASP.NET для интрасети

Однако, если вы используете проверку подлинности с помощью форм, вам придется самостоятельно отслеживать текущего пользователя, наиболее распространенным методом которого будет сохранение его имени входа в переменной Session.

3 голосов
/ 11 декабря 2012

Получите User информацию следующим образом:

User.Identity.Name \\ Get the User name
User.Identity.AuthenticationType \\ What is the Authentication type
User.Identity.IsAuthenticated \\ Is he authenticated?
User.IsInRole("Administrators") \\ Is he administrator?
2 голосов
/ 17 апреля 2009

Если для проверки подлинности настроена встроенная проверка подлинности Windows, вы можете получить ее, введя

User.Identity.Name
1 голос
/ 17 апреля 2009

Вы можете использовать

Page.User.Identity.Name
0 голосов
/ 17 апреля 2009

Если аутентификация Windows, это должно помочь:

IIdentity WinId= HttpContext.Current.User.Identity;
WindowsIdentity wi = (WindowsIdentity)WinId;
...