2015-01-14 13 views
0

ASP.NET 웹 양식 인트라넷 사이트에 사용자 지정 역할 공급자가 있습니다. 우리는이 클래스가 RoleProvider로부터 상속 받아 적절한 메소드를 구현하도록했습니다. 그러나 Initialize를 포함하여 메서드가 호출되지 않는 것이 분명합니다. 우리는의 web.config에 다음과 같은 한 :Windows 인증이있는 사용자 지정 역할 공급자

<authentication mode="Windows" /> 

<authorization> 
    <allow roles="CRM"/> 
    <deny users="?"/> 
</authorization> 

<roleManager defaultProvider="MyRoleProvider" 
    enabled="true" 
    cacheRolesInCookie="true"> 
    <providers> 
     <clear /> 
     <add 
      name="MyRoleProvider" 
      applicationName="MyApp" 
      type="MyApp.MyRoleProvider" 
      writeExceptionsToEventLog="false" /> 
    </providers> 
</roleManager> 
우리가 this 질문을 검토하지만, 그 대답은 우리의 상황에 적용되지 않음을 유의해야한다

.

+0

eventviewer에 쓰기 오류를 시도하고 작성된 예외를 검사 해 보셨습니까? –

답변

1

나는이 대답을 제공해야하는 바보처럼 느껴지지만 비슷한 문제가있는 사람을 도울 수 있기를 바랍니다. 사용자 지정 역할 공급자가 호출되지 않는다는 모든 증거가있는 것처럼 보였지만 실제로는 그렇지 않았습니다. 우리의 역할이 캐쉬로 인해 불려지지 않은 것으로 보입니다.

cacheRolesInCookie="true"> 

이 우리가 기대하지 않았다 역할을 뽑아 역할 관리자의 원인, 우리가 테스트 중에을 조작하고 같이 위의 코드에서 볼 수 있듯이, 우리는 다음과 같은했다. 속성을 "false"로 변경하면 모든 것이 예상대로 작동하기 시작했습니다.

+1

당신은 바보가 아닙니다. CustomRoleProvider 코드가 호출되지 않는 이유를 알아 내려고 노력했습니다. (중단 점은 발생하지 않습니다.) 감사. – Jack