Я откатываю свой собственный SiteMapProvider, наследующий System.Web.XmlSiteMapProvider
.Как XmlSiteMapProvider проверяет пользователя на заданную роль?
Я хочу, чтобы переопределить логику проверки пользователя, чтобы быть в ролях, указанных в свойстве SiteMapNode в roles
:
<siteMapNode url="Add.aspx?type=user" title="Add user" roles="admin" />
Как я могу это сделать? Какой член класса выполняет вызов XmlSiteMapProvider, чтобы проверить, что если securityTrimmingEnabled="true"
?
Мой вопрос, к сожалению, не привлекал пользователей в течение некоторого времени, поэтому я должен был найти решение самостоятельно и, к счастью, сделал это. Вы не могли бы упомянуть, что я одновременно OP, и один ответ тоже мой. Потому что принятие собственного ответа не приносит никакой репутации, я рад принять ваш :) Спасибо! – abatishchev
@aba - на самом деле, я не заметил, что ОП и ответ были от одного и того же человека, просто чтобы руководство было немного более ясным. Рад, что вы поняли это и рад, что я могу помочь, если да. –
Хорошо, я могу переопределить 'IsAccessibleToUser', чтобы применить собственную логику для проверки. Но как работает * original * 'IsAccessibleToUser'? Отражатели показывают, что он проверяет 'context.User.IsInRole (role)'. Вы знаете, как устанавливать роли в «IPrincipal»? – abatishchev