繁体   English   中英

如何获取当前Windows登录用户的用户名?

[英]How do I get the current Windows logged-in user's username?

我正在使用ASP.NET MVC 4开发Intranet应用程序。我正在使用自定义表单身份验证。 当用户访问该应用程序时,我要使用该用户的Windows登录用户名并在我的数据库中检查该用户名。 但是我不知道如何使用该用户名。 我尝试使用以下代码:

string CurLoggedInUsername = Environment.UserName;

当我从Visual Studio运行时,这给了我用户名,但是当我在IIS上托管我的应用程序时,它给出了一个奇怪的值。 我也尝试使用

string CurLoggedInUsername = httpcontext.current.user.identity.name;

但没有用。 有没有办法在身份验证之前获取用户的Windows登录用户名?

听起来您可能需要考虑混合模式身份验证。 即Windows和窗体身份验证。 问题是他们并不一定会打得很好。

下面的文章介绍了该问题及其解决方法。 本文的重点围绕IIS 7集成模式下401质询(Windows身份验证)和302重定向(表单身份验证)如何不兼容以及使用几种表单和HTTP管道拦截获取用户详细信息的方式。 我成功地将这种方法用于大型公共部门客户(尽管适用于Webforms应用程序)。 我确定原理是相同的。

带有表单身份验证和Windows身份验证的IIS 7.0两级身份验证

我忘记在代码示例中添加显示Windows身份验证凭据的正确位置。 已经有一段时间了,所以我记不起来了。

暂无
暂无

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

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