1

Windows 認証を使用しており、カスタム メンバーシップを持っていません。ただし、カスタム ロール プロバイダーがあり、有効にしています。しかし、web.config の < authorization /> 要素はどうでしょうか? 私もそれで何かをする必要がありますか?

現時点では、Roles.GetRolesForUser("") メソッドを使用できません (何も返されません) が、Roles.Provider.GetRolesForUser("") のようにする必要がありますか?

最大の問題は、サイトマップが Roles.IsUserInRole メソッドに入らないことです。現時点では、カスタム xmlsitemapprovider を使用していますが、うまくいきません。

rolemanager を有効にし、web.config でサイトマップの securitytrimmingenabled を true に設定しました。

4

1 に答える 1

1

はい、web.config でカスタム ロール プロバイダーを構成する必要があります。次のようにします。

<roleManager enabled="true" defaultProvider="SqlRoleManager">
  <providers>
    <add name="SqlRoleManager" 
         type="System.Web.Security.SqlRoleProvider"
         connectionStringName="SqlRoleManagerConnection"
         applicationName="MyApplication" />
  </providers>
</roleManager>

また、セキュリティ トリミングも true に設定する必要があります。例えば。

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
    <providers>
      <add name="XmlSiteMapProvider"
        description="Default SiteMap provider."
        type="System.Web.XmlSiteMapProvider "
        siteMapFile="Web.sitemap"
        securityTrimmingEnabled="true" />
    </providers>
  </siteMap>
于 2009-08-01T10:10:43.350 に答える