문제

아래와 같은 컨트롤러를 작성합니다.

public class AccountController : Controller
{
    public ActionResult Login(/*---*/)
    {
        GenericIdentity identity = new GenericIdentity("userName");
        GenericPrincipal principal = new GenericPrincipal(identity, new string[] { "role1", "role2" });
        this.HttpContext.User = principal;
        /*---*/;
    }
}

로그인 한 후 다른 컨트롤러의 user.identity.name에 의해 사용자 이름을 얻을 수 있습니다. 그러나 user.isinrole ( "role1")은 항상 false를 반환합니다.

사용자에게 값을 할당하려면 멤버십을 사용하고 싶지 않습니다 ...

도움이 되었습니까?

해결책

흠.

멤버십 사용?

최소한 하위 레벨 API. 어떤 경우에는 교장을 지정해야합니다 (기본적으로 쿠키로 바뀌고 모든 통화마다 사로화됩니다).

세부 사항이 있습니다 http://support.microsoft.com/kb/306590

또는 또한 http://msdn.microsoft.com/en-us/library/aa302399.aspx

다른 팁

모든 후속 페이지 요청에 액세스 할 수 있도록 사용자 데이터를 어딘가에 유지해야합니다. 일반적으로 인증 티켓을 만들어 쿠키에 보관합니다. 그런 다음 각 요청에 대해 데이터를 추출하고 iprincipal을 만듭니다. 이것은 할 수 있습니다 Application_AuthenticateRequest Global.ascx의 방법,

MVC- 인증 된 사용자의 역할을 저장/할당하는 방법 원하는 것을하는 간단한 방법에 대한 자세한 정보가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top