Можно ли показать ссылку в программе на 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 для полного обзора.
Элемент управления LoginView может отображать определенный контент в зависимости от роли пользователя.