0

我有自定義SiteMapProvider和RoleProvider一起正常工作:IsAccessibleToUser回報false如果當前用戶的角色不SiteMapNode.Roles的請求的頁面提及。是否有可能使用打開阻止頁面securityTrimmingEnabled =真

所以麪包屑或菜單不顯示的項目。

但用戶仍然可以現在鍵入URL顯示直接打開一個網頁。我怎樣才能阻止這種行爲?

我也有未來的Web.config設置:

<authorization> 
    <allow roles="Admin,Manager,Client" /> 
    <deny users="*" /> 
</authorization> 

回答

0
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(); 
    } 
} 
相關問題