每当重定向必须在区域内发生时,我在MVC中使用表单身份验证时遇到了一些麻烦。
MembershipControlller
这是路由。所以......
/Membership/Login
是网址。在我的Web.config
文件中,我有这样的设置......
<authentication mode="Forms">
<forms loginUrl="/Membership/Login" timeout="2880" protection="Encryption" />
</authentication>
另请注意,我尝试了变体"~/Membership/Login"
现在只要需要授权的ActionResult在同一部分(根“区域”)中,这就可以正常工作。但是说我有一个区域......
这是/Profile/Home/
ActionResult的Index()
的网址。我收到了错误......
无法找到资源。 说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。
请求的网址:/帐户/登录
这不是我在Web.config
中指定的路径。因此,在“根”区域控制器中,它遵循Web.config
,但在其他区域中,它似乎忽略它并使用ASP.NET默认值。
有什么想法吗?
我已经和Hosting公司谈过了,他们向我发誓,他们端的默认Web.config没有被修改,也没有理由不能修改我自己的Web.config - 但这只是当我将其上传到他们的服务器时发生。他们拒绝进一步帮助我。
我是否必须对IIS7或IIS7.5执行任何特殊操作才能使此重定向工作?
答案 0 :(得分:3)
以下对我有用。
更改App_Start目录中的Startup.Auth文件。 该文件还包含重定向到帐户/登录
答案 1 :(得分:2)
检查各个区域中的Web.Config文件。 确保它们没有可以覆盖全局Web.Config设置的Authentication标记。