我们正在为客户构建一个 Intranet,客户不希望用户登录,因为他们已经登录到域 (Active Directory)
但他们确实想知道每个用户的 AD 用户名,这样如果他们在博客上发帖,他们的身份就可以被记录下来。
到目前为止,我们的想法是,我们的 web.config 文件应该说:
<identity impersonate="false" />
以便每个用户都以自己的身份浏览 Intranet 站点,而不是 IIS 中配置的 App Pool 用户。
这是解决问题的正确方法吗?
如果是这样,我们应该使用什么 IIS 身份验证?注意:我们不对用户进行身份验证,因此我们不需要登录提示,所有用户都已经登录到该域,我们只想查看他们的用户名。
这可能吗?我们走在正确的轨道上吗?
在 C# 中,我们可以像这样检索用户名:
System.Web.HttpContext.Current.Request.LogonUserIdentity.Name.ToString()
但我们就是找不到不会提示域/网络登录的 IIS 身份验证设置。
最佳答案
您需要开启 windows 身份验证。在你这样做之后,身份 token 将被传递到我记得的服务器,你可以用它来管理身份验证。 另请注意,只有 Chrome 和 IE 完全支持此功能,Firefox 在对用户进行身份验证之前至少会要求按下 ok 按钮。 其他需要注意的是在浏览器中正确设置信任级别,否则它不会进行自动身份验证。
关于c# - 从 C# 网页(包括 IIS)获取当前登录的 Active Directory 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6781045/