在ASP.NET中为基本用户屏蔽部分页面

时间:2012-06-07 10:01:15

标签: asp.net authorization administration

我会向您展示一些截图,这将更容易解释。

这就是我所拥有的: http://www.noelshack.com/2012-23-1339063050-SiteWebV3.png
使用我的“root”帐户,我可以访问整个页面。

这就是我想要的: http://www.noelshack.com/2012-23-1339063050-SiteWebV3LimitedAccess.png
我想限制对非root用户的访问。

我知道如何禁止访问整个页面,但我不知道(如果可能的话)如何屏蔽我页面的一部分。

我看了这个page,但它对我想要做的事没有帮助。

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以制作两个WebUserControls并根据父级Page_Load事件中的用户类型有条件地加载它们,或者您可以选择将WebUserControl设置为UserControl并将用户特定控件的可见性设置为只读/通过公开Page_load的公共属性并将其设置在基于UserType的{​​{1}}事件上,可见= false。

你也可以这样做

    <% if (this.UserType== "root") { %>
    Loading user control with root user options
    <CTRL:A runat="server" />
<% } else { %>
    Loading user control with Non root User rights
    <CTRL:A runat="server" />
<% } %>

希望它无论如何都可以帮助你

答案 1 :(得分:1)

如果有人感兴趣,我发现了一种更简单(最简单?)的方法:

protected void Page_Load(object sender, EventArgs e)
    {
            if (Convert.ToString(User.Identity.Name) == "root")
            {
              //Your code if you're root
            }
            else
            {
             //Your code if you aren't
            }
   }

当然,您可以通过管理员的用户名更改“Root”,或者添加许多这样的登录信息:

if (Convert.ToString(User.Identity.Name) == "root" || Convert.ToString(User.Identity.Name) == "AnotherLogin" || Convert.ToString(User.Identity.Name) == "Etc")
{
  //Blah blah
}

希望有所帮助:)