ロール属性のみを使用し、他の場所でルールを許可/拒否しないサイトマップセキュリティトリミング

StackOverflow https://stackoverflow.com/questions/1033299

質問

タグに「ロール」があることは承知しています。 " url"を持たないノードを補うための属性属性。他の方法で解決できます。これらの他の方法には興味がありませんが、すべての権限をサイトマップファイルに設定したいと思います。これを達成する方法は?

カスタムRoleProvider、カスタムMembershipProvider、およびデフォルトのXmlSiteMapProviderを使用しています。また、人々が直接URLを使用してそこに到達するのを防ぐためのセキュリティIHttpModuleもあります。さまざまなアプローチを受け入れています。

事前に感謝します!

役に立ちましたか?

解決

独自のXmlSiteMapProviderを実装し、IsAccessibleToUserメソッドをオーバーライドできます。

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

他のヒント

最後に、XmlSiteMapProviderから派生することにより、独自のセキュリティトリミングを実装しました。とても簡単でした。

public override SiteMapNodeCollection GetChildNodes(SiteMapNode node)
{
    return CustomSecurityTrim(base.GetChildNodes(node));
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top