0

使用しているカスタム 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 の値を取得するにはどうすればよいですか?

ありがとう、

4

1 に答える 1

1

問題が見つかりました。config セクションを間違ったタイプにキャストしていました。これが私が今やったことです。

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

var cacheRolesInCookie = roleManagerSection.CacheRolesInCookie;
于 2012-05-25T19:59:18.677 に答える