如何读取ASP.NET自定义RoleProvider cacheRolesInCookie配置值的值?

时间:2012-05-25 18:56:23

标签: asp.net asp.net-membership

我有一个我正在使用的自定义RoleProvider,并且我发现cacheRolesInCookie无效。阅读后,这是预期的行为。但是,我想覆盖它并自己处理缓存。我的问题是我无法弄清楚如何从配置文件中读取值以确定是否应该进行缓存。这是我的配置设置...

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

我使用以下代码阅读提供商设置:

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

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

如何获取属性cacheRolesInCookie的值?

谢谢,

1 个答案:

答案 0 :(得分:1)

我发现了我的问题。我将配置部分转换为错误的类型。是我现在所做的。

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

var cacheRolesInCookie = roleManagerSection.CacheRolesInCookie;