2011-02-03 6 views
2

私は認証されたユーザーからの要求であることを確認する必要があるアプリケーションで作業しています。私はユーザGuidに多くの負荷をかけるためです。ここでは、ユーザーがasp.net mvcで認証されていることを確認する最も良い場所です

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

、私はこれを行う必要がありません、すべてのActionResult機能上の

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

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

や獣のアプローチや集中型のソリューションがあり、「ユーザーが認証されていることが確認される」私の質問。

おかげ

答えて

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 { ... } 
関連する問題