ロール属性のみを使用し、他の場所でルールを許可/拒否しないサイトマップセキュリティトリミング
-
06-07-2019 - |
質問
タグに「ロール」があることは承知しています。 " 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));
}
所属していません StackOverflow