我有一个我正在使用的自定义角色提供程序,我发现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 的值?
谢谢
我发现了我的问题。我将我的配置部分转换为错误的类型。 他就是我现在所做的。
var roleManagerSection = (RoleManagerSection)WebConfigurationManager.GetSection("system.web/roleManager");
var cacheRolesInCookie = roleManagerSection.CacheRolesInCookie;