0

"url"属性を持たないノードを補うための "roles"属性がタグに含まれています。他の方法で解決される。私はこれらの他の方法には興味がありませんが、サイトマップファイルにすべての権限を設定したいと思います。これを達成する方法は?サイト属性のセキュリティ属性を使用したトリミングと、他の場所でのルールの許可/拒否はありません。

私はカスタムRoleProvider、カスタムMembershipProvider、およびデフォルトのXmlSiteMapProviderを使用しています。私はまた、人々が直接URLを使ってそこに着くのを防ぐためのセキュリティIHttpModuleを持っています。私はさまざまなアプローチに開放されています。

ありがとうございます!

答えて

1

独自のXmlSiteMapProviderを実装し、IsAccessibleToUserメソッドをオーバーライドすることができます。エレガントな、非常に簡単で、必要に応じて動作します -

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

最後に、私はXmlSiteMapProviderから派生して自分のセキュリティトリミングを実装しました。それは十分に簡単でした。

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

より良い解決策は、どうもありがとうございました、IsAccessibleToUser – Zyphrax

+0

Zyphraxを上書きすることであろう。 – VikciaR

+0

@Zyphraxはソリューションとして回答を投稿して、私はそれに切り替えることができますか? – Ekevoo