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

StackOverflow https://stackoverflow.com/questions/1033299

Вопрос

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

public override SiteMapNodeCollection GetChildNodes(SiteMapNode node)
{
    return CustomSecurityTrim(base.GetChildNodes(node));
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top