У нас есть сайт интрасети ASP.NET, доступный для пользователей, которые физически находятся на локальном компьютере и вошли на него, либо для пользователей, которые подключаются удаленно через VPN. Есть ли способ автоматически получить имя пользователя для всех, кто обращается к странице, на основе имени, используемого для входа на локальный компьютер или для VPN?
Как получить имя пользователя, обращающегося к странице интрасети ASP.NET в локальной сети?
Ответы (5)
Это возможно, если вы используете на своих страницах проверку подлинности Windows.
Вы можете использовать либо Page.User.Identity.Name
, либо более полный System.Web.HttpContext.Current.User.Identity.Name
.
Об этом подробнее здесь:
Включение проверки подлинности Windows в веб-приложении ASP.NET во внутренней сети
Однако, если вы используете проверку подлинности с помощью форм, вам придется самостоятельно отслеживать текущего пользователя, наиболее распространенный метод - сохранение его имени для входа в переменную сеанса.
User.Identity.Name
также будет содержать имя пользователя auth с помощью форм.
- person Brent Pabst; 07.08.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?
Если проверка подлинности настроена на выполнение встроенной проверки подлинности Windows, вы сможете получить ее, открыв
User.Identity.Name
Ты можешь использовать
Page.User.Identity.Name
Если аутентификация выполняется в окнах, это должно помочь:
IIdentity WinId= HttpContext.Current.User.Identity;
WindowsIdentity wi = (WindowsIdentity)WinId;