Можно ли показать ссылку в программе на C# только для администратора?

Привет (я новичок в этом),

У меня есть контроль входа в мою программу на C#, и как только пользователь входит в систему, он может видеть ссылки на другие программы (портал). Можно ли скрыть ссылку "Создать нового пользователя" для всех, кроме администратора, после того, как пользователь вошел в систему? Это то, что я бы изменил в web.config, так как я хочу, чтобы только администраторы могли создавать новых пользователей (для этого я использую CreateUserWizard).

Спасибо.

4 ответа

Решение

Я предполагаю, что "admin" - это роль в вашем приложении. Если это так, вы можете использовать элемент управления LoginView.

<asp:LoginView id="LoginView1" runat="server">
    <RoleGroups>
        <asp:RoleGroup Roles="Admin">
            <ContentTemplate>
                Stuff only an administrator can see
            </ContentTemplate>
        </asp:RoleGroup>
    </RoleGroups>
</asp:LoginView>

Вы также можете сделать это программно, используя метод IsUserInRole, например:

somePanel.Visible = Roles.IsUserInRole("Admin");

Если я вас понимаю, вы хотите разрешить доступ и показывать страницы только аутентифицированному пользователю на веб-сайте asp.net, который играет определенную роль (в данном случае роль "администратор")?

Для этого вам нужно включить безопасность безопасности на вашем провайдере карты сайта, например.

 <siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
    <providers>
      <add name="XmlSiteMapProvider"
        description="Default SiteMap provider."
        type="System.Web.XmlSiteMapProvider "
        siteMapFile="Web.sitemap"
        securityTrimmingEnabled="true" />
    </providers>
  </siteMap>

Это скажет вашему провайдеру карты сайта принять во внимание, аутентифицированы ли участники и какие роли они выполняют при отображении пунктов меню.

Чтобы фактически заблокировать доступ к путям через пути местоположения и роли в web.config Например:

<location path="~/CreateNewUser.aspx">
 <system.web>
  <authorization>
   <allow roles="Admin"/>
   <deny users="*"/>
  </authorization>
 </system.web>
</location>

См. Как: использовать Role Manager в ASP.NET 2.0 для полного обзора.

В вашем коде:

createUserLink.Visible = currentUser.IsAdmin;

Элемент управления LoginView может отображать определенный контент в зависимости от роли пользователя.

Другие вопросы по тегам