Pergunta

Estou ciente de que a marca tem o atributo de "papéis" para compensar os nós que não têm o atributo "url", que podem ser resolvidos de outras maneiras. Eu não estou interessado nessas outras maneiras, porém, eu gostaria de ter todas as minhas permissões definidas no meu arquivo Sitemap. Como conseguir isso?

Eu estou usando RoleProvider costume, MembershipProvider personalizada, eo XmlSiteMapProvider padrão. Eu também tenho uma segurança IHttpModule para impedir as pessoas de chegar lá usando uma URL direta. Estou aberto a diferentes abordagens.

Agradecemos antecipadamente!

Foi útil?

Solução

Você pode implementar seu próprio XmlSiteMapProvider e substituir o método IsAccessibleToUser.

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

Outras dicas

No final, eu implementado minha própria segurança aparando derivando XmlSiteMapProvider. Foi o suficiente simples.

public override SiteMapNodeCollection GetChildNodes(SiteMapNode node)
{
    return CustomSecurityTrim(base.GetChildNodes(node));
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top