ASP.NET MVC,来自区域的表单身份验证重定向

时间:2010-12-21 17:55:12

标签: asp.net-mvc

每当重定向必须在区域内发生时,我在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执行任何特殊操作才能使此重定向工作?

2 个答案:

答案 0 :(得分:3)

以下对我有用。

更改App_Start目录中的Startup.Auth文件。 该文件还包含重定向到帐户/登录

Startup.Auth file

答案 1 :(得分:2)

检查各个区域中的Web.Config文件。 确保它们没有可以覆盖全局Web.Config设置的Authentication标记。

相关问题