Windows身份验证.Net Core 2.0在没有安全提示的情况下显示用户名

时间:2017-10-25 14:24:57

标签: c# authentication asp.net-core-mvc windows-authentication asp.net-core-2.0

我创建了一个全新的Asp.Net Core 2.0 web mvc应用程序,启用了Windows身份验证。 如果我立即点击播放它会提示我输入用户凭据,这不是我想要的。如果我点击取消它然后重定向到401.2未经授权的错误屏幕,出现以下错误:

  

“由于无效,您无权查看此页面   身份验证标题。“

当我停止应用程序并在项目上启用匿名身份验证并再次点击播放时,它会成功运行应用程序,但不会显示我的用户名。 @User.Identity.Name返回空字符串。

如何在能够显示我的用户名的同时绕过安全提示?

在.NET Framework中,我会在web.config文件中使用它以及匿名身份验证= true,它会以我想要的方式工作:

<authentication mode="Windows" />
<authorization>
  <deny users="?" />
</authorization>

我正在使用Visual Studio 15.4.1。

1 个答案:

答案 0 :(得分:0)

我认为<authentication>标记与ASP.NET有关,而与IIS无关。在ASP.NET Core中, System.Web 管道不会运行。

通过web.config

中的以下配置,我成功地使用ASP.NET Core实现了Windows身份验证
<configuration>
  <system.webServer>
    <security>
      <authentication>
        <anonymousAuthentication enabled="false" />
        <windowsAuthentication enabled="true" />
      </authentication>
    </security>
  </system.webServer>
</configuration>

当您通过IIS管理器更改身份验证设置时,<system.webServer>部分会被修改。

在Ben的第一次评论后编辑

抱歉,我误读了部分初始邮件,并认为您是在尝试在IIS中部署应用程序。

看起来Windows身份验证设置正确,因为系统会提示您输入凭据。我不明白的是你得到提示的原因。我正在使用IE11,Edge和Chrome,他们都知道如何在不提示我的情况下发送Windows凭据。

您在进行测试时使用的浏览器是什么?你可以试试我上面列出的吗?