SecurityTrimMingEnabledを使用してページが開くのをブロックすることは可能ですか
-
04-10-2019 - |
質問
適切に連携するカスタムSiteMapproviderとRoleProviderがあります。 IsAccessibleToUser
戻り値 false
現在のユーザーの役割が言及されていない場合 SiteMapNode.Roles
要求されたページ用。
したがって、パン粉やメニューにはアイテムが表示されません。
ただし、ユーザーは今でもURLを直接表示してページを開くことができます。そのような動作をブロックするにはどうすればよいですか?
また、次のweb.config設定があります:
<authorization>
<allow roles="Admin,Manager,Client" />
<deny users="*" />
</authorization>
解決
public override bool IsAccessibleToUser(HttpContext context, SiteMapNode node)
{
var roles = node.Roles.OfType<string>();
if (roles.Contains("*") || (roles.Count(r => context.User.IsInRole(r)) > 0))
{
return true;
}
else
{
throw new InsufficientRightsException();
}
}
所属していません StackOverflow