我昨天整个下午尝试了googoling,但也许我无法搜索好,我找不到解决方案!
我的MVC4应用程序在表单身份验证中运行良好,但现在公司请求是在Windows身份验证中切换身份验证。
我尝试简单地更改Web配置并将其设置为Windows身份验证,但是当我启动调试时,用户为空(User.Identity.Name =“”)。
所以我尝试通过VS模板创建一个新的Intranet webapp来查看它是否正常工作,确实如此。我比较了Web配置,没有遗漏任何东西,但我无法理解应用程序如何获取用户,因为在这里我发现User.Identity.Name数据正确。
所以我遗漏了一些东西,或者我只是需要添加一些代码? 谢谢你的帮助。
-EDIT:我尝试进行会话开始检查,但User.Identity仍为空且未经过身份验证。无法理解为什么!
答案 0 :(得分:0)
请验证此配置以进行Windows身份验证
<authentication mode="Windows" />
<authorization>
<allow users="yourdomain\someotheruser" />
<deny users="*" />
</authorization>
答案 1 :(得分:0)
第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步:如果您希望在开发服务器上为经过身份验证的用户提供完整的网站,则可以在属性资源管理器中禁用匿名身份验证。