2009-06-29 2 views
2

저는 asp.net 및 mvc에 새로운 제품이므로 조금 잃어 버렸습니다.asp.net MVC 및 OpenID를 사용하여 전체 폴더 (인증 포함)를 보호하는 가장 간단한 방법

응용 프로그램에서이 Tutorial을 사용하여 OpenID로 로그인 할 수 있습니다.

switch (openid.Response.Status) 
{ 
    case AuthenticationStatus.Authenticated: 
    if (openid.Response.ClaimedIdentifier.ToString() == Settings.Default.AdminClaimedIdentifier) 
     Session["Admin"] = true;         
    FormsAuthentication.RedirectFromLoginPage(openid.Response.ClaimedIdentifier, false); 
    break; 
    ... 
} 

응용 프로그램 내가 노력하고있어 :

그러나 단지 세션을 설정하면 잘 모르겠어요 [ "관리자가"] 진정한 = 지금까지 내 코드는 다음과 같은 것입니다, 따라 할 수있는 권리 경로는 쓰기에는 지금 당장 한 명의 관리자 만 필요합니다. 설정에서이 관리자의 OpenID를 사용하는 것이 매우 쉽다는 것을 알았습니다.

기본적으로 설정에 하나의 관리자의 OpenID가 있고이 인증을 기반으로 전체 폴더를 보호하므로 그 안에있는 모든 작업과 하위 폴더에는 관리자 권한이 필요합니다. ~/Admin/whatever/edit/1은 인증이 필요합니다.

이러한 종류의 인증을 수행하는 가장 간단하고 청결한 방법은 무엇입니까?

답변

1

OpenID는 "폴더"또는 Admin Controller에 대한 액세스를 제한하는 권한이인가 (사용자가 할 수있는 작업) 권한을 제공합니다 (누구입니까?).

장래에 (사용자의 필요에 따라) 사용할 수있는 간단한 솔루션은 RoleProvider을 사용하는 것입니다.이 기능을 사용하면 그레고리가 제안한대로 인증 특성을 사용할 수 있습니다.

0

OpenId에 대해서는 잘 모르겠지만 일반적으로 컨트롤러 클래스의 맨 위에 다음을 배치하여 전체 폴더를 잠 그거나 ActionResult에서 해당 작업을 잠글 수 있습니다.

[Authorize(Roles="admin")] 

희망이 있습니다.

+0

인증 메커니즘과 결합하지 않으면 작동하지 않습니다. [Authorize]는 작동합니다 (즉, 인증 된 사용자 허용, [Authorize (Roles = "admin")]). – veggerby