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

本文关键字:用户 登录 Windows 何获得 | 更新日期: 2023-09-27 18:07:37

我正在使用ASP开发一个intranet应用程序。Net MVC 4。我使用自定义表单身份验证。当用户访问应用程序时,我希望获取用户的Windows登录用户名并在数据库中检查该用户名。但我不知道怎么用这个用户名。我尝试使用以下代码:

string CurLoggedInUsername = Environment.UserName;

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

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

但是没有用。是否有一种方法,以获得用户的Windows登录用户名认证之前?

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

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

下面的文章描述了这个问题以及如何克服它。这篇文章的重点是在IIS 7集成模式下401挑战(Windows身份验证)和302重定向(表单身份验证)是如何不兼容的,以及如何使用几个表单和HTTP管道拦截来获取用户详细信息。我在一个大型公共部门客户(尽管是一个webforms应用程序)中成功地使用了这种方法。我敢肯定原则是一样的。

IIS 7.0两级身份验证与表单身份验证和Windows身份验证

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