2012-02-09 7 views
6

ASP.NET Web Forms에서 ASP.NET MVC 3으로 응용 프로그램을 마이그레이션하려고합니다. 현재 핵심 및 중요한 부분 중 하나가 자체 디렉터리에 잠겨 있습니다.ASP.NET MVC 3의 사용자 지정 승인

<location path="home" allowOverride="false"> 
    <system.web> 
    <authorization> 
     <deny users="?"/> 
     <allow users="*"/> 
    </authorization> 
    </system.web> 
</location> 

내 질문은, 어떻게 ASP.NET MVC 3의 보안이 동일한 유형을 구현합니까입니다 : 내 web.config 파일에 다음을 사용하여이 디렉토리에 액세스 권한이없는 사용자가 제한? 필자는 컨트롤러 클래스에 속성을 설정하는 것과 관련하여 직감을 가지고 있습니다. 그러나 AuthorizeAttribute는 인증 상태가 아닌 사용자 이름 목록 만 허용하는 것처럼 보입니다 (잘못된 경우 나 수정하십시오). 샘플 ASP.NET 인터넷 응용 프로그램을 살펴본 결과 특별한 구성이 보이지 않았습니다.

누군가가 올바른 방향으로 나를 가리켜 주시겠습니까?

감사합니다.

맞습니다
+0

내 질문에 대답을보십시오 : http://stackoverflow.com/q/746998/1796 –

답변

5

, 그렇게처럼 AuthorizeAttribute을 활용하는 것입니다 :

"인증 상태"에 관해서는
[Authorize] 
public ActionResult AuthenticatedUsers() 
{ 
    return View(); 
} 

[Authorize(Roles = "Role1, Role2")] 
public ActionResult SomeRoles() 
{ 
    return View(); 
} 

[Authorize(Users = "User1, User2")] 
public ActionResult SomeUsers() 
{ 
    return View(); 
} 

, 나는 당신이 무슨 뜻인지 모르겠어요. Roles 같은 인증 요구 사항을 처리하는 것 같습니다.

+0

'[인증]'attriute 그들이 일반적으로 인증되었는지 확인해야합니다. 내가 읽었을 때 그것이 OP가 찾고있는 것입니다. 롤 (Roles) 매개 변수가 필요하다는 인상을 받고 있다고 생각합니다. 또한 이러한 속성을 컨트롤러 클래스 자체에 적용하여 각 메서드에 대해 정의하지 않고 동일한 방식으로 처리 할 수 ​​있습니다. –

0

원하는 경우 web.config에서 여전히 인증을 수행 할 수 있습니다. 대부분의 사람들은 권한 부여 권한을 [승인] 필터를 사용하여 액션 또는 전체 컨트롤러 (또는 기본 컨트롤러)로 이동합니다.

권한 부여 필터는

("익명" "인증"을 위해? *의 사용 등) 역할 또는 사용자와 동일한의 Web.config가하는 지원이 확인을 위해 사용자와 역할을하지 않을 경우 사용자 지정 권한 부여 특성을 만드는 방법에 대한이 문서에서 :

ASP.NET MVC Custom Authorization

0

당신은 사용자 또는 역할 당신이 컨트롤러에 넣어 경우 (컨트롤러에 액세스 할 수있는 권한이 할 말을 권한 부여 특성을 사용하는 것, 이러한 권한이있을 것 이 컨트롤러의 모든 동작에 대해 설정 됨) 또는 동작. 모양 : http://build.mt.gov/2011/10/27/aspnet-mvc3-and-the-authorize-attribute.aspx. Rembember는 특정 사용자의 역할을 제공 할 사람이 asp.net 웹 폼과 같이 RoleProvider가됩니다.