Усечение безопасности файла Sitemap с использованием только атрибутов ролей, и не разрешать / запрещать правила где-либо еще
Мне известно, что у тега есть атрибут "role", чтобы компенсировать узлы, у которых нет атрибута "url", который может быть решен другими способами. Меня не интересуют эти другие способы, хотя я бы хотел, чтобы все мои разрешения были установлены в моем файле Sitemap. Как это сделать?
Я использую пользовательский RoleProvider, пользовательский MembershipProvider и стандартный XmlSiteMapProvider. У меня также есть IHttpModule для безопасности, чтобы люди не могли туда попасть, используя прямой URL. Я открыт для разных подходов.
Заранее спасибо!
2 ответа
Вы можете реализовать свой собственный 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));
}