2011-02-03 82 views
2

我在一個應用程序的工作,我需要驗證請求來自通過認證的用戶的最佳場所。因爲我基於用戶Guid做了很多加載。哪裏是驗證用戶進行身份驗證在asp.net mvc的

public ActionResult ManageEmployee() 
{ 
     var loadedEmp = GetLoadedEmp(GetLoggedUserGuid()); 
     return View("Employee/Manage", loadedEmp); 
} 

我的問題是,做我需要做的這個「驗證用戶身份驗證」

public ActionResult ManageEmployee() 
{ 
if (!User.Identity.IsAuthenticated) 
{ 
     return View("Account/LogOn"); 
    } 

    var loadedEmp = GetLoadedEmp(GetLoggedUserGuid()); 
    return View("Employee/Manage", loadedEmp); 
} 

每ActionResult的功能還是有野獸的方式或集中式解決方案。

感謝

回答

11

使用的行動AuthorizeAttribute控制器要求用戶登錄才能完成該操作:

[Authorize] 
public ActionResult ManageEmployee() 
{ 
    // This code will only execute if the user is Authenticated 
    var loadedEmp = GetLoadedEmp(GetLoggedUserGuid()); 
    return View("Employee/Manage", loadedEmp); 
} 

當使用該屬性,用戶將被自動重定向到登錄頁面(如果他們沒有登錄)(只要您的應用程序配置正確)。

0

我認爲你也可以使用這個屬性來鎖定在一個特定的角色和用戶 - 您應該使用角色提供的功能。

6

@Justin Niessner是正確的,但作爲一個快捷鍵,如果你想要的屬性將被應用到你的控制器的每一個動作你可以把AuthorizeAttribute的類:

[Authorize] 
public class HomeController : AreaController { ... }