2011-02-03 3 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 { ... } 
관련 문제