2010-04-19 2 views
0
<siteMapNode roles="*"> 

    <siteMapNode url="~/Default.aspx" title=" Main" description="Main" roles="*"/> 

    <siteMapNode url="~/Items.aspx" title=" Adv" description="Adv" roles="Administrator"/> 

.... 

любой пользователь может видеть страницу Adv. Это проблема и вопрос: почему и как скрывать роль ситэнодов.Управление SiteMap на основе ролей пользователя не работает

но если я сделаю HttpContext.Current.User.IsInRole("Administrator"), это покажет мне, если пользователь в роли администратора или нет.

веб-конфигурация:

<authentication mode="Forms"/> 
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20"> 
    <providers> 
    <add connectionStringName="FlowWebSQL" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" passwordFormat="Hashed" applicationName="/" name="SqlProvider" type="System.Web.Security.SqlMembershipProvider"/> 
    </providers> 
</membership> 
<roleManager enabled="true" defaultProvider="SqlProvider"> 
    <providers> 
    <add connectionStringName="FlowWebSQL" name="SqlProvider" type="System.Web.Security.SqlRoleProvider" /> 
    </providers> 
</roleManager> 

ответ

1

Вы должны использовать location тег в web.config.

<location path ="Items.aspx" > 

    <system.web> 

    <authorization> 

     <allow roles ="Administrator"/> 
     <deny users="*"/> 
    </authorization> 

    </system.web> 

</location> 

См следующий за шаг за шагом пользовательской реализации роли
http://urenjoy.blogspot.com/2010/03/custom-role-provider-sitemap-navigation.html

+0

hm ... похоже, я не могу использовать System.Web в App_Code из WebApplication. – Cynede

+0

также ... У меня нет разных папок для каждой роли. Если я делать папки в некоторых папках mu st сможет выполнять некоторые роли (не одну роль - одну папку) – Cynede

+0

, но ... код web.config действительно помог! Спасибо. – Cynede

2

Включить роли безопасности ролей безопасности не включена по умолчанию, и она не может быть включена программно; он может быть установлен только в файле web.config

http://msdn.microsoft.com/en-us/library/ms178428.aspx

+0

аха ... проблема здесь: Cynede

+0

Карта сайта datasource запрашивает только один элемент – Cynede

Смежные вопросы