C# ASP.NET MVC Windows身份验证正在显示登录提示,而不是让我登录

C# ASP.NET MVC Windows身份验证正在显示登录提示,而不是让我登录,c#,asp.net-mvc-4,authentication,C#,Asp.net Mvc 4,Authentication,基于此,我使用Visual Studio 2013Intranet站点模板创建了一个基本的ASP.NET MVC站点,并使用默认设置,不做任何更改 在调试模式下运行站点而不是让我登录并显示我的domain\username时,系统会提示我在Authentication Required对话框中输入用户名/密码 我的印象是,由于我已经通过了域的身份验证,我应该直接使用我的AD帐户登录应用程序,而不必输入任何内容。当我尝试显式输入我的广告名或本地用户帐户时,不接受任何内容 编辑 如果我用Firefo

基于此,我使用Visual Studio 2013
Intranet站点
模板创建了一个基本的ASP.NET MVC站点,并使用默认设置,不做任何更改

在调试模式下运行站点而不是让我登录并显示我的
domain\username
时,系统会提示我在
Authentication Required
对话框中输入用户名/密码

我的印象是,由于我已经通过了域的身份验证,我应该直接使用我的AD帐户登录应用程序,而不必输入任何内容。当我尝试显式输入我的广告名或本地用户帐户时,不接受任何内容

编辑

如果我用Firefox输入用户名/密码,我将通过身份验证,但不使用Chrome和IE


有什么想法吗?

关于windows身份验证,您遇到的问题让我很失望很长一段时间了。Internet explorer有一个名为“通过身份验证”的功能,在使用windows auth时自动对您进行身份验证。其他浏览器有解决方法:

这取决于系统管理员为其他浏览器实施这些措施,但从来没有人这样做,因此除了IE之外,我们在每个浏览器中都无法输入完整的用户名和密码

您可以采用以下方法:


不像启用Windows Author那样简单,或者甚至实现表单Authe,但是考虑一种场景,在这里您需要基础设施来管理权限并管理用户帐户,或者,如果您希望在不公开广告的情况下全局公开登录页面。

IE不会向站点传递凭据,除非该站点位于intranet安全区域或同一域中。您可以使用将您的站点添加到IE的受信任站点列表中

Internet Options > Security > Trusted sites > Sites
Chrome从IE的设置中获取其受信任的站点设置,因此,一旦您添加到IE,它也应该在Chrome中工作,请与您的IIS(Internet信息服务器)管理器联系,查看您的应用程序是否具有该用户的正确权限

  • 转到左侧的“连接”面板
  • 在“站点”下,导航到您的应用程序或保存该应用程序的文件夹
  • 右键单击并选择“编辑权限…”
  • 转到“安全”选项卡
  • 在“组或用户名”框下,检查您的Windows ID或Windows组(如果有多个用户)是否对此网站具有正确的权限
  • 如果用户或组不存在,请单击“编辑”按钮,然后单击“添加”按钮

还要检查IIS上的应用程序是否启用了“Windows身份验证”,是否禁用了“匿名身份验证”和“ASP.NET模拟”。

您使用的浏览器是什么?确保该站点位于受信任的站点或Intranet站点中。您还需要确保客户端正确。浏览器应配置为允许windows身份验证。站点应位于intranet站点中,intranet站点配置应配置为允许自动登录。还要确保你没有通过代理。但是我也在IE中获得身份验证对话框?那么你的AD GPO必须禁用传递,或者你正在尝试跨域进行身份验证。另外,请参见。您要验证的站点必须被识别为intranet,在同一个域上这是自动的。为什么Firefox要验证我,而不是Chrome和IE?Read这个属性是在Firefox上配置的吗?如果是这样的话,那就是firefox工作的原因,你将不得不在其他浏览器中进行相应的调整。通常,windows auth在IE中工作时没有提示,但在任何其他浏览器中都没有,我很好奇谁会在IE中关闭它&在firefox中显式打开它,除非你的问题是其他的。如果您还没有推断出来,您的问题与代码/IIS无关,与浏览器配置选项有关。
network.automatic ntlm auth.trusted uris
存在于
about:config
中,但没有值集,它只是空白。