在asp.net mvc中隐藏默认表单身份验证URL

时间:2013-09-25 13:36:42

标签: asp.net-mvc-3 asp.net-mvc-routing

我有一个配置为使用

的应用程序
  

〜/帐户/ LogOn支持

中的

  

的web.config

用于身份验证的文件。

我希望网址只指向www.example.com,而不是www.example.com/Account/LogOn。

我尝试过如下路由配置,但它不起作用

routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Account", action = "LogOn", id = "" }
        );

请建议可以使用的正确做法。我试图从web.config文件中删除loginurl,但它没有用,并在运行时显示授权错误。

1 个答案:

答案 0 :(得分:1)

我不确定您是否可以将路由更改为两个操作具有相同的地址:Home/IndexAccount/LogOn。但是,如果您想要更改默认的logOn路由,则需要两个步骤:

1)再添加一个路由:

//This route returns www.example.com/Login
routes.MapRoute(
            "MyRoute",                                             
            "Login",                           
            new { controller = "Account", action = "LogOn", id = "" }
        );

2)在web.config中进行更改:

~/Login

以同样的方式,您可以为LogOn创建任何其他路由

至于我,在login页面上Index的唯一解决方案就是这样做(并从web.config中删除重定向):

@if(!Request.IsAuthenticated)
{
   //PartialView with Log In form
}
else
{
 // Your Index page content
}