MVC4:从窗体切换到窗口身份验证

本文关键字:窗口 身份验证 窗体 MVC4 | 更新日期: 2023-09-27 18:29:16

昨天我试了一下午的谷歌,但可能我搜索不好,也没有找到解决方案!

我有一个MVC4应用程序在Forms Authentication中运行良好,但现在公司的请求是在windows Authentication中切换身份验证。

我试图简单地更改web配置并将其设置为Windows身份验证,但当我开始调试时,用户为空(user.Identity.Name=")。

因此,我试图通过VS模板创建一个新的intranet Web应用程序,看看它是否运行良好,它确实运行良好。我比较了web配置,没有遗漏任何内容,但我不明白应用程序是如何获得用户的,因为在这里我发现user.Identity.Name数据是正确的。

所以我遗漏了什么,或者我只需要添加一些代码?谢谢你的帮助。

-编辑:我试图进行会话启动检查,但User.Identity仍然为空,并且没有经过身份验证。无法理解原因!

MVC4:从窗体切换到窗口身份验证

步骤1:打开Web.config文件并进行以下修改:

<!—
<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
-->
<authentication mode="Windows" />

步骤2:默认情况下,MVC应用程序使用表单身份验证和简单成员身份,因此您需要将其设置为"false"才能运行Windows身份验证。

<appSettings>
  <add key="webpages:Version" value="2.0.0.0" />
  <add key="webpages:Enabled" value="false" />
  <add key="PreserveLoginUrl" value="true" />
  <add key="ClientValidationEnabled" value="true" />
  <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  <add key="autoFormsAuthentication" value="false" />
  <add key="enableSimpleMembership" value="false"/>
</appSettings>

步骤3:在解决方案资源管理器中选择项目名称,然后在属性资源管理器上单击以启用Windows身份验证。

步骤4:如果您希望在开发服务器上为经过身份验证的用户提供完整的网站,则可以在属性资源管理器中禁用匿名身份验证。

参考

请验证windows身份验证的此配置

 <authentication mode="Windows" />
    <authorization>
      <allow users="yourdomain'someotheruser" />
      <deny users="*" />
    </authorization>