Sitemap安全修整仅使用角色属性,而不允许/拒绝其他地方的规则

时间:2009-06-23 15:27:14

标签: asp.net sitemap roleprovider sitemapprovider security-trimming

我知道标签具有“roles”属性来弥补没有“url”属性的节点,这可以通过其他方式解决。我对这些其他方式不感兴趣,但我想在我的站点地图文件中设置所有权限。如何做到这一点?

我正在使用自定义RoleProvider,自定义MembershipProvider和默认的XmlSiteMapProvider。我还有一个安全IHttpModule来防止人们使用直接URL到达那里。我对不同的方法持开放态度。

提前致谢!

2 个答案:

答案 0 :(得分:1)

最后,我通过派生自XmlSiteMapProvider实现了我自己的安全修整。这很简单。

public override SiteMapNodeCollection GetChildNodes(SiteMapNode node)
{
    return CustomSecurityTrim(base.GetChildNodes(node));
}

答案 1 :(得分:1)

您可以实现自己的XmlSiteMapProvider并覆盖IsAccessibleToUser方法。

public override bool IsAccessibleToUser(HttpContext context, SiteMapNode node)
{
     return <condition in which access is allowed>
}