首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Roles.GetRolesForUser和Roles.Provider.GetRolesForUser的区别是什么?

Roles.GetRolesForUser和Roles.Provider.GetRolesForUser的区别是什么?
EN

Stack Overflow用户
提问于 2009-08-01 09:54:39
回答 1查看 2.4K关注 0票数 1

我使用的是Windows身份验证,没有自定义成员资格。但是,我确实有一个自定义的角色提供程序,并将其打开。但是,web.config中的< authorization />元素又如何呢?我也需要用它做点什么吗?

现在我不能使用Roles.GetRolesForUser("")方法(不返回任何东西),但必须像Roles.Provider.GetRolesForUser("")那样做?

最大的问题是站点地图,因为它没有进入Roles.IsUserInRole方法。目前,我使用了一个自定义的xmlsitemapprovider来实现这一点,但它并不简洁。

我启用了角色管理器,并在web.config中将站点地图的securitytrimmingenabled设置为true。

EN

回答 1

Stack Overflow用户

发布于 2009-08-01 10:10:43

是的,您需要在web.config中配置您的自定义角色提供程序-如下所示:

代码语言:javascript
复制
<roleManager enabled="true" defaultProvider="SqlRoleManager">
  <providers>
    <add name="SqlRoleManager" 
         type="System.Web.Security.SqlRoleProvider"
         connectionStringName="SqlRoleManagerConnection"
         applicationName="MyApplication" />
  </providers>
</roleManager>

您还应该将security trimming设置为true。例如:

代码语言:javascript
复制
<siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
    <providers>
      <add name="XmlSiteMapProvider"
        description="Default SiteMap provider."
        type="System.Web.XmlSiteMapProvider "
        siteMapFile="Web.sitemap"
        securityTrimmingEnabled="true" />
    </providers>
  </siteMap>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1216270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档