Как получить имя пользователя для аутентификации Windows через IIS 7.5 и ASP.NET - PullRequest
0 голосов
/ 29 февраля 2012

На сервере я получаю текущее имя пользователя, вошедшего в систему, но с удаленного клиента я получаю имя сервера / администратора.

Ниже приведен код:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  'Grab username from Windows Authentication, remove the 'HHI\', and assign to empName
  'empname = Replace(HttpContext.Current.User.Identity.Name.ToUpper, "HHI\", "")
  'empname = Replace(Page.User.Identity.Name, "HHI\", "")
  empname = Replace(WindowsIdentity.GetCurrent.Name, "HHI\", "")
  'empname = Replace(System.Threading.Thread.CurrentPrincipal.Identity.Name, "HHI\", "")
  Response.Write(empname)
End Sub

I 'мы пробовали пулы приложений с помощью «Сетевой службы», с именованными учетными записями и установили режим конвейера на «Интегрированный» и «Классический».

Приведенный выше код корректно работает в Server 2003 / IIS6, но я не смог заставить его работать в Windows Server 2008R2 / IIS 7.5.

Любая и вся помощь приветствуется!

1 Ответ

0 голосов
/ 29 февраля 2012

Я нашел проблему.По-видимому, во время RDPing на сервер я сохранил права локального администратора в моем «хранилище учетных данных» в Win7.По умолчанию эти учетные данные переопределяют мое сетевое имя пользователя при перечислении.

Следующий код работает правильно:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
  'Grab username from Windows Authentication, remove the 'HHI\', and assign to empName 
  empname = Replace(HttpContext.Current.User.Identity.Name.ToUpper, "HHI\", "") 
  Response.Write(empname) 
End Sub 

Спасибо за внимание!

...