Усечение безопасности файла Sitemap с использованием только атрибутов ролей, и не разрешать / запрещать правила где-либо еще - PullRequest
0 голосов
/ 23 июня 2009

Мне известно, что у тега есть атрибут "role", который компенсирует узлы, у которых нет атрибута "url", который можно разрешить другими способами. Меня не интересуют эти другие способы, хотя я бы хотел, чтобы все мои разрешения были установлены в моем файле Sitemap. Как это сделать?

Я использую пользовательский RoleProvider, пользовательский MembershipProvider и XmlSiteMapProvider по умолчанию. У меня также есть IHttpModule для безопасности, чтобы люди не могли туда попасть, используя прямой URL. Я открыт для разных подходов.

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 18 января 2014

Вы можете реализовать свой собственный XmlSiteMapProvider и переопределить метод IsAccessibleToUser.

public override bool IsAccessibleToUser(HttpContext context, SiteMapNode node)
{
     return <condition in which access is allowed>
}
1 голос
/ 24 июня 2009

В конце концов, я реализовал собственное усечение безопасности, основываясь на XmlSiteMapProvider. Это было достаточно просто.

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