我有一个web应用程序,我已在WAN和LAN中运行。相同的代码在单独的Web应用程序中运行。 在WAN中,我已将其配置为使用表单身份验证。它无缝地工作。 但是,LAN应用程序配置为使用Windows身份验证。
现在发生的事情是网站上写着“Hello DOMAIN \ TestUser”,其中显示了
然而:我总是在“帐户/登录”页面上找到自己。 为了澄清:我的登录页面使用的是一般布局模板,用于执行上面提到的'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)
答案 0 :(得分:1)
之前遇到过这种情况,必须将我的项目运行良好的本地IIS部署与服务器上部署的部署进行比较。事实证明,有额外的DLL 不应该部署。我的情况虽然与你的情况略有不同。该项目正在我的本地计算机上工作,但不在LAN环境中。需要删除的额外文件:
我希望它与你的情况相同,这是一个难以解决的部署问题。
答案 1 :(得分:0)
取出<forms loginUrl="~/Account/Login" timeout="2880" />
行和<membership />
部分可能会有所帮助吗?
哪会让你:
<system.web>
<authentication mode="Windows"></authentication>
</system.web>
答案 2 :(得分:0)
我在这里找到了解决方案: http://martinnormark.com/asp-net-mvc-3-windows-authentication-problem-redirects-to-account-login 花了几个小时后谷歌搜索...
答案很幸运很简单: 将这两个属性添加到您的应用设置中:
<appSettings>
<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>
</appSettings>
对我来说看起来非常糟糕的做法......但是,嘿,它能完成这项工作。