2012-05-25 1 views
0

사용중인 사용자 지정 RoleProvider가 있는데 cacheRolesInCookie가 작동하지 않는 것으로 나타났습니다. 읽기 후에 이것은 예상되는 동작입니다. 그러나, 나는 이것을 무시하고 독자적으로 캐시를 처리하고 싶습니다. 내 문제는 캐싱이 발생하는지 여부를 결정하기 위해 구성 파일에서 값을 읽는 방법을 파악할 수 없다는 것입니다.ASP.NET 사용자 지정 RoleProvider cacheRolesInCookie 구성 값의 값을 읽으려면 어떻게해야합니까?

var membershipSection = (MembershipSection)WebConfigurationManager.GetSection("system.web/membership"); 
var defaultProvider = membershipSection.DefaultProvider; 
var providerSettings = membershipSection.Providers[defaultProvider]; 

var connStringName = providerSettings.Parameters["connectionStringName"]; 

이 어떻게 속성 cacheRolesInCookie의 값을 얻을 수 있습니다 : 여기이 코드를 사용하여 공급자 설정을 읽을

<roleManager defaultProvider="MyRoleProvider" cacheRolesInCookie="true" enabled="true"> 
    <providers> 
    <clear/> 
    <add name="MyRoleProvider" 
     type="MyCompany.WebSecurity.MyRoleProvider" 
     connectionStringName="Security" 
     applicationName="TestSite" /> 
    </providers> 
</roleManager> 

... 내 설정 설정인가?

감사합니다.

답변

1

문제가 발견되었습니다. 내 설정 섹션을 잘못된 유형으로 캐스팅했습니다. 나는 지금 해왔습니다.

var roleManagerSection = (RoleManagerSection)WebConfigurationManager.GetSection("system.web/roleManager"); 

var cacheRolesInCookie = roleManagerSection.CacheRolesInCookie; 
관련 문제