【问题标题】:Is it possible to show a link in a C# program to the admin only?是否可以仅向管理员显示 C# 程序中的链接?
【发布时间】:2009-11-03 10:47:39
【问题描述】:

嗨(我对此很陌生),

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

谢谢。

【问题讨论】:

  • “管理员”是什么意思,它是您应用程序中的一个角色吗?您是指当前登录的 windows 用户吗?
  • 我是管理员,并已在 asp.net 配置中进行了设置,所以我想知道是否有可能,这样只有我才能看到“创建用户”的链接以及其他所有内容用户,此文本不显示。在我的 web.config 我添加了:

标签: c# web-config privileges createuserwizard


【解决方案1】:

我假设“管理员”是您的应用程序中的一个角色。如果是这样,您可以使用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");

【讨论】:

    【解决方案2】:

    如果我理解您的意思,您希望只允许 asp.net 网站中具有特定角色(在本例中为“管理员”角色)的经过身份验证的用户访问和显示页面?

    为此,您需要启用security trimming on your site map provider,例如。

     <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>
    

    请参阅How To: Use Role Manager in ASP.NET 2.0 了解完整概述。

    【讨论】:

    • 是的,它是一个管理员角色。现在可以享用了,因此只有管理员可以查看该页面 - 谢谢。
    【解决方案3】:

    在您的代码隐藏中:

    createUserLink.Visible = currentUser.IsAdmin;
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-28
        • 2019-05-14
        • 1970-01-01
        • 2010-12-09
        • 2010-09-30
        • 2010-09-16
        相关资源
        最近更新 更多