C# 如何获取当前Windows登录用户';谁的用户名?

C# 如何获取当前Windows登录用户';谁的用户名?,c#,asp.net-mvc-4,authentication,intranet,C#,Asp.net Mvc 4,Authentication,Intranet,我正在使用ASP.NETMVC4开发一个内部网应用程序。我正在使用自定义表单身份验证。当用户访问应用程序时,我希望使用用户的Windows登录用户名并在我的数据库中检查该用户名。但我不知道如何使用这个用户名。我尝试使用以下代码来获取它: string CurLoggedInUsername = Environment.UserName; 当我从VisualStudio运行时,这会给我用户名,但当我在IIS上托管应用程序时,它会给我一个奇怪的值。我也试着用 string CurLoggedInU

我正在使用ASP.NETMVC4开发一个内部网应用程序。我正在使用自定义表单身份验证。当用户访问应用程序时,我希望使用用户的Windows登录用户名并在我的数据库中检查该用户名。但我不知道如何使用这个用户名。我尝试使用以下代码来获取它:

string CurLoggedInUsername = Environment.UserName;
当我从VisualStudio运行时,这会给我用户名,但当我在IIS上托管应用程序时,它会给我一个奇怪的值。我也试着用

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

但是没有用。在认证之前,有没有办法让用户的Windows登录用户名?

< P>听起来你可能需要考虑混合模式认证。即Windows和窗体身份验证。问题是他们不一定在一起玩得很好

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


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

为什么不使用windows身份验证可能重复?我已经尝试使用windows身份验证,但它显示提示,询问我不想要的用户名和密码。我想当用户访问我的登录页面时,我得到他的windows帐户用户名,并对照我的数据库进行检查。如果存在并且自动登录的标志为true,则重定向到仪表板;如果自动登录的标志为false,则显示已填充用户名的登录页面,并允许用户输入密码。@CodeWarrior,您找到解决方案了吗?