2014-09-20 33 views
0

路由我喜歡在MVC3應用www.abc.com一個網址,我設置默認map.route這樣關於MVC

routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new { controller = "UserLogOnPage", action = "LogOn", id = UrlParameter.Optional } // Parameter defaults 
); 
現在

當我鍵入發生了什麼www.abc.com和輸入它去控制器:UserLogOnPage方法:登錄和在瀏覽器的網址也顯示www.abc.com這是正確的,但是當輸入網址如www.abc.com/UserLogOnPage/Logon相同的方法和控制器,我想要的URL像www .abc.com不是www.abc.com/UserLogOnPage/Logon我該如何做到這一點。

感謝

+0

配置authorization部分您將需要URL映射到重定向www.abc。 com/UserLogOnPage /在您的global.asax中登錄www.abc.com – 2014-09-20 10:45:10

回答

1

我幾乎可以肯定這不是你實際上是試圖做的 - 將導致該路由配置任何 URL重定向到LogOn頁。

由url什麼看起來你去後,實際上是認證,即如果一個匿名用戶訪問www.abc.com他們被要求登錄纔可以訪問該網站。

幸運的是,MVC已經完成了所有你需要做的努力就是決定你想如何工作。身份驗證可以在各個級別應用,範圍由通過AuthorizeAttribute設置的位置確定。

的Global.asax - 由每一個動作需要進行身份驗證

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    ... 
    filters.Add(new AuthorizeAttribute()); 
} 

控制器 - 一個特定的控制器內的一切行動所需的認證

[Authorize] 
public class AccountController : Controller 
{ 
    ... 
} 

行動 - 需要這種認證僅限動作

[Authorize] 
public ActionResult AccountDetails() 
{ 
    ... 
} 

要確定您想將用戶重定向到作爲AuthorizeAttribute的結果的頁面,您可以在web.config

<authentication mode="Forms"> 
    <forms loginUrl="~/UserLogOnPage/LogOn" /> 
</authentication>