PrinciplePermissionAttribute
예외가 발생하여 문제가 발생합니다. Load
메서드에서 특성을 가진 페이지는 초기 로그인 직후 예외를 throw합니다.ASP.Net 멤버십 principalpermission 문제
<PrincipalePermission(SecurityAction.Demand, role:="Level1")> _
Protected Sub Page_Load(ByVal sender As Object, ByVal e as System.EventArgs) Handles Me.Load
End Sub
이 예외는 Request for principal permission failed
을 발생시킵니다.
제거하면 페이지가 잘로드되고 동일한 속성을 가진 다른 페이지로 이동할 수 있으며 완벽하게 작동합니다. 또한 회원 시스템 Roles.IsUserInRole()
기능을 사용하면 문제가 없습니다.
처음 로그인 한 후 내 Thread.CurrentPrincipal
이 GenericPrincipal
이고 RolePrincipal
이 아닌 것으로 나타났습니다. 후속 요청은 제네릭 대신 올바른 유형을 표시합니다. 나는 이것을 PostAuthenticate
이벤트의 Global.asax
파일에 강제로 넣으려고했지만 asp.net은 GenericPrincipal
을 설정 한 것 같습니다.
이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 아니면 Roles.IsUserInRole()
방법을 사용하고 있습니까?
UPDATE
나는 Global.asax
에 변경하는 것은 도움이되지 않았는지 볼 수있는 파이프 라인 here에서 일어나는 뭐죠에 약간의 설명을 발견 한 후. 내가 이전에 테스트 해본 프로토 타입 프로젝트를 가지고 있었고 거기에서 그것을 재현 할 수 없었다. 프로젝트 유형과 관련이 있는지 궁금합니다. 프로토 타입은 웹 사이트 프로젝트이고 문제는 웹 응용 프로그램 프로젝트입니다.
GenericPrincipal
이 RolePrincipal
으로 변경되었지만 초기 요청이 처리 된 후에 만 이상하게 생각됩니다. 그래서 그것의 열심히 그것이 내 'Page_Load'가 실행되기 전에 그것처럼 일하지 않는다고 말하는 것은 어렵습니다.