我有一个在 WAN 和 LAN 中运行的 web 应用程序。相同的代码在不同的 Web 应用程序中运行。在 WAN 中,我已将其配置为使用表单身份验证。它无缝地工作。但是 LAN 应用程序配置为使用 Windows 身份验证。
现在发生的情况是,网站说“Hello DOMAIN\TestUser”,这表明,
- Request.IsAuthenticated 必须为真
- User.Identity.Name 设置为正确的用户
但是:我总是在“帐户/登录”页面上找到自己。澄清一下:我的登录页面正在使用执行上述“Request.IsAuthenticated”的通用布局模板。
我的问题:当身份验证明显成功时,为什么我被重定向到登录页面?我该怎么做才能让它发挥作用?:)
我想这是我配置的关键部分:
<system.web>
<authentication mode="Windows">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear />
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
</system.web>
此 Web 应用程序的 IIS 设置为启用 Windows 身份验证并禁用所有其他身份验证方法。
(我正在使用 ASP.Net MVC 4)