繁体   English   中英

从 C# web 页面(包括 IIS)获取当前登录的 Active Directory 用户

[英]Get currently logged-on Active Directory user from a C# web page (IIS incl)

我们正在为客户端构建 Intranet,客户端不希望用户登录,因为他们已经登录到域(Active Directory)

但是他们确实想知道每个用户的 AD 用户名,这样如果他们在博客上发帖,就可以记录他们的身份。

到目前为止,我们的想法是,我们的 web.config 文件应该说:

<identity impersonate="false" />

这样每个用户都以自己的身份浏览内网站点,而不是 IIS 中配置的 App Pool 用户。

这会是关于 go 的正确方法吗?

如果是这样,我们应该使用什么 IIS 身份验证? 注意:我们没有对用户进行身份验证,所以我们不需要登录提示,所有用户都已经登录到域,我们只想查看他们的用户名。

这甚至可能吗? 我们走在正确的轨道上吗?

在 C# 中,我们可以这样检索用户名:

System.Web.HttpContext.Current.Request.LogonUserIdentity.Name.ToString()

但我们只是找不到不会提示域/网络登录的 IIS 身份验证设置。

您需要开启 windows 认证。 在你这样做之后,我记得身份令牌将被传递给服务器,你可以用它来管理身份验证。 另请注意,只有 Chrome 和 IE 完全支持此功能,Firefox 在验证用户之前至少会要求按下确定按钮。 其他要注意的是在浏览器中正确设置信任级别,否则它不会进行自动身份验证。

您已经知道如何获取 LogonUserIdentity 并正确设置 IIS。 缺少的是让浏览器自动使用用户的 AD 帐户进行身份验证。 要启用它,您必须配置浏览器才能这样做,我认为默认情况下仅对 Intranet 区域站点启用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM