Управление ролями в меню сайта asp.net - PullRequest
0 голосов
/ 26 июля 2011

Я хочу знать, возможно ли настроить роли в меню веб-сайта, чтобы не видеть aspx, а также получить текущую роль в c # (код сзади) после того, как пользователь вошел в систему.Спасибо

1 Ответ

5 голосов
/ 26 июля 2011

Если вы используете поставщик ролей asp.net и элемент управления меню asp.net, вы можете использовать файл web.sitemap для управления отображением ссылок меню на основе ролей, как показано ниже.

<siteMapNode url="/Test/Default.aspx" roles="Admin" title="Test" description="">

В противном случае вы можете использовать элемент управления loginview для отображения различных ссылок на основе ролей, как показано ниже.

<asp:LoginView runat="server">
    <AnonymousTemplate>
       Menu Link1
    </AnonymousTemplate>
    <RoleGroups>
        <asp:RoleGroup Roles="Admin">
            <ContentTemplate>
                Menu Link2
            </ContentTemplate>
        </asp:RoleGroup>
    </RoleGroups>
</asp:LoginView>

Если вы не используете поставщиков ролей и, скажем, храните эту информацию в сеансе или где-то еще, вы можете использовать нечто подобное в файле aspx.

<% if (Session["admin"].ToString() == "Admin") { %>
  Link1
<% } else { %>
  Link2
<%} %>

Вы можете получить текущие роли для вошедшего в систему пользователя как

string[] roleNames = Roles.GetRolesForUser();
...