从 AD 获取当前登录的用户(而不是 NT AUTHORITY/NETWORK SERVICE)
Posted
技术标签:
【中文标题】从 AD 获取当前登录的用户(而不是 NT AUTHORITY/NETWORK SERVICE)【英文标题】:Getting currently logged in user from AD ( Instead of NT AUTHORITY/NETWORK SERVICE ) 【发布时间】:2015-01-15 17:17:28 【问题描述】:我有一个 c# asp.net Web 应用程序,我需要在其中获取当前登录的用户(Windows 身份验证 - 活动目录)
我将 ISS(7.5) 中的身份验证更改为 windows 身份验证,并在 web.config 中阻止了匿名访问
但是,当我使用“System.Security.Principal.WindowsIdentity.GetCurrent()”时,我没有获得自己的用户凭据,而是获得 NT AUTHORITY/NETWORK SERVICE。
我尝试让 iis 将我的帐户用于应用程序池(仅用于测试),但这只会让一切变得混乱。
知道我可以做些什么来获得自己的用户凭据吗?
【问题讨论】:
使用HttpContext.Current.User.Identity
这个问题解决了吗?如何解决的?
【参考方案1】:
System.Security.Principal.WindowsIdentity.GetCurrent()
返回运行 Web 应用程序的帐户的身份。
HttpContext.Current.User.Identity
返回登录用户的身份。通常when you're in a page or controller,你可以做User.Identity
。如有疑问,请阅读文档!
【讨论】:
在这种情况下,它是一个 Sitecore 网站,而 HttpContext.Current.User.Identity 给了我 Sitecore.Security.Principal.SitecoreIdentity 而不是.Name
属性包含用户名。根据this blog post,这是意料之中的。当用户未登录时,他们将拥有帐户extranet/anonymous
。但是一旦他们登录,听起来您就会看到他们的实际域和用户名。以上是关于从 AD 获取当前登录的用户(而不是 NT AUTHORITY/NETWORK SERVICE)的主要内容,如果未能解决你的问题,请参考以下文章
无法在 UWP 应用中获取某些用户帐户信息 - 内部活动目录(不是 Azure AD)
如何从spring security获取当前登录的用户对象?