是否可以仅向管理员显示 C# 程序中的链接?

发布于 2024-08-09 07:31:38 字数 180 浏览 12 评论 0原文

您好(我对此还很陌生),

我的 C# 程序中有一个登录控件,一旦用户登录,他们就可以看到其他程序的链接(门户)。用户登录后,是否可以对除管理员之外的所有人隐藏“创建新用户”链接?这是我在 web.config 中更改的内容,因为我只希望管理员能够创建新用户(我为此使用 CreateUserWizard)。

谢谢。

Hi (I'm pretty new to this),

I have a login control in my C# program and once the user logs in, they are able to see links to other programs (a portal). Is it possible to hide the 'create new user' link to everyone except the admin once the user has logged in? Is this something I'd change in the web.config as I only want admins to be able to create new users (I use a CreateUserWizard for this).

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

絕版丫頭 2024-08-16 07:31:38

我假设“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");

I'm assuming that 'admin' is a role in your application. If so, you can use a LoginView control.

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

You can also do in programatically, using the IsUserInRole method, e.g:

somePanel.Visible = Roles.IsUserInRole("Admin");
坠似风落 2024-08-16 07:31:38

如果我理解您的意思,您希望只允许 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>

请参阅 如何:在 ASP.NET 2.0 中使用角色管理器了解完整概述。

If I understand you, you wish to only allow access to, and display, pages to an authenticated user in an asp.net website who is in particular role (in this case, the "admin" role)?

To do this you need to enable security trimming on your site map provider eg.

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

This will tell your sitemap provider to take account of whether members are authenticated and what roles they are in when displaying menu items.

To actually block access to paths via location paths and roles in the web.config For instance:

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

See How To: Use Role Manager in ASP.NET 2.0 for a full overview.

以为你会在 2024-08-16 07:31:38

在你的代码隐藏中:

createUserLink.Visible = currentUser.IsAdmin;

in your codebehind:

createUserLink.Visible = currentUser.IsAdmin;
囍孤女 2024-08-16 07:31:38

LoginView 控件可以根据用户角色显示某些内容。

The LoginView control can display certain content depending on the user role.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文