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

标签 c# iis authentication active-directory

我们正在为客户构建一个 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/

相关文章:

authentication - IIS7和身份验证问题

magento - 无效的表单 key 。请刷新页面

c# - Process.RedirectStandardOutput 不起作用

从 Process.Start() 调用时,C# 应用程序随机挂起

c# - 将字节数组的内容转换为字符串

asp.net - 网站无法访问时出现错误页面

c# - 在多线程 C# 程序中执行一次性初始化

iis - 如何在 localhost 中查看站点

c# - 文件存在于 Windows 资源管理器和记事本中,但在我的程序中无法访问

java - session 无效无法使用基于 LTPA 的安全性