0

사용자 지정 SiteMapProvider와 RoleProvider가 함께 작동합니다. IsAccessibleToUser은 현재 사용자의 역할이 요청 된 페이지에 대해 SiteMapNode.Roles에 언급되지 않은 경우 false을 반환합니다.securityTrimmingEnabled = true를 사용하여 페이지를 열 수 없게 차단할 수 있습니까?

따라서 빵 부스러기 또는 메뉴에 항목이 표시되지 않습니다.

하지만 사용자는 여전히 URL을 직접 입력하고 페이지를 열 수 있습니다. 그러한 행동을 어떻게 막을 수 있습니까?

<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(); 
    } 
} 
:

또한 나는 다음의 Web.config 설정이