根据角色向用户显示特定菜单 [英] Show specific menu to users based on is role

查看:69
本文介绍了根据角色向用户显示特定菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨!我想根据用户的角色隐藏一些菜单。

我有这个菜单和子菜单:

< div class =grey>

< ul id =mega-menu-5class =mega-menu>

< li>< a href =Home.aspx >信息中心< / a>< / li>

< li>< a href =#>目录< / a>

< ul>

< li>< a href =Category.aspx>类别< / a>< / li>

< li>< a href =SubCategory.aspx> SubCategories< / a>< / li>

< li>< a href =Product.aspx>产品< / a>< ; / li>

< li>< a href =CategoryAttribute.aspx>类别属性< / a>< / li>

< li> ;< a href =SubAttribute.aspx>子属性< / a>< / li>

< li>< a href =News.aspx>新闻< / a>< / li>

< li>< a href =ForumAdmin.aspx>论坛< / a>< / li>

< li>< a href =ProductAttributeSub.aspx>产品属性< / a>< / li>

< li> < a href =Service.aspx>服务< / a>< / li>

< li>< a href =Member.aspx>会员< / a> ;< / li>

< li>< a href =Banner.aspx>横幅< / a>< / li>

< / ul>

< / li>

< / ul>

< / div>

后面的代码是:

protected void btnOk_Click(object sender,EventArgs e)

{

if(_User.ValidateUser()&& ; (Convert.ToInt32(Session [UserTypeId])== 1))

{

Response.Redirect(Home.aspx);

}

else if(_User.ValidateUser()&&(Convert.ToInt32(Session [UserTypeId])== 7))

{

Response.Redirect(Product.aspx);

}

else if(_User.ValidateUser()&&(转换.ToInt32(Session [UserTypeId])== 8))

{

Response.Redirect(Banner.aspx);

}

}

但是这个工作不能这样,因为我正在重定向到不隐藏页面的页面。

我的kestion是,假设我想要具有Session [UserTypeId])== 7的用户仅查看此链接:< a href =Category.aspx> Categories< / a>

和具有Session [的用户UserTypeId])== 8仅查看这2页:

< li>< a href =Category.aspx>类别< / a>< / li>

& lt; li>< a href =SubCategory.aspx> SubCategories< / a>< / li>

我该怎么办?

解决方案





您可以从load事件中添加html代码。请看下面的内容;​​



首先为aspx添加标签;

 <   asp:标签    ID   =  Label1    runat   =  server < span class =code-attribute>  文本  = 标签 >  <   / asp:标签 >  





然后从cs添加你的html代码;



 protected void Page_Load(object sender,EventArgs e)
{
如果( !this.IsPostBack)
{
string myHtml = @< div class = grey >
< ul id = mega- menu-5 class = mega-menu >
< li > < ; a href < span class =code-keyword> = Home.aspx < span class =code-keyword>> 信息中心< / a > < / li >
< li > < a href = > 目录< / a >
< ul >
{0}
< / ul >
< / li >
< / ul >
< / div > ;
string myLinks =;

if(_User.ValidateUser()&&(Convert.ToInt32(Session [UserTypeId])== 1))
{
myLinks = @< span class =code-keyword><
li > < a href = Category.aspx > 类别< / a > < / li >
< li > < a href = SubCategory.aspx > 子类别< / a > < / li > ;
}
else if(_User.ValidateUser()&&(Convert.ToInt32(Session [UserTypeId])== 7))
{
myLinks = @ < li > < a href = SubAttribute .aspx > 子属性< / a > < / li >
< <跨度class =code-keyword>> < a href = News.aspx > 新闻< / a > < ; / li > ;
}
else if(_User.ValidateUser()&&(Convert.ToInt32(Session [UserTypeId])== 8))
{
myLinks = @ < li > < a href = CategoryAttribute .aspx > 类别属性< / a > < / li > ;
}

Label1.Text = string.Format(myHtml,myLinks);
}
}





希望它会对你有所帮助,

Ibrahim Uylas


Hi! I want to hide some menu based on the role of a user.
I have this menu adn submenu:
<div class="gray">
<ul id="mega-menu-5" class="mega-menu">
<li><a href="Home.aspx">Dashboard</a></li>
<li><a href="#">Catalog</a>
<ul>
<li><a href="Category.aspx">Categories</a></li>
<li><a href="SubCategory.aspx">SubCategories</a></li>
<li><a href="Product.aspx">Product</a></li>
<li><a href="CategoryAttribute.aspx">Category Attribute</a></li>
<li><a href="SubAttribute.aspx">Sub Attribute</a></li>
<li><a href="News.aspx">News</a></li>
<li><a href="ForumAdmin.aspx">Forum</a></li>
<li><a href="ProductAttributeSub.aspx">Product Attribute</a></li>
<li><a href="Service.aspx">Service</a></li>
<li><a href="Member.aspx">Member</a></li>
<li><a href="Banner.aspx">Banner</a></li>
</ul>
</li>
</ul>
</div>
and code behind is :
protected void btnOk_Click(object sender, EventArgs e)
{
if (_User.ValidateUser() && (Convert.ToInt32(Session["UserTypeId"]) == 1))
{
Response.Redirect("Home.aspx");
}
else if (_User.ValidateUser() && (Convert.ToInt32(Session["UserTypeId"]) == 7))
{
Response.Redirect("Product.aspx");
}
else if (_User.ValidateUser() && (Convert.ToInt32(Session["UserTypeId"]) == 8))
{
Response.Redirect("Banner.aspx");
}
}
But this cant work like this because I am redirecting to pages not hiding pages.
My kestion is,suppose I want the user with Session["UserTypeId"]) == 7 to view only this link:<a href="Category.aspx">Categories</a>
and user with Session["UserTypeId"]) == 8 to view only these 2 pages :
<li><a href="Category.aspx">Categories</a></li>
<li><a href="SubCategory.aspx">SubCategories</a></li>
what can I do?

解决方案

Hi,

You may add html code from load event. Look at below;

First of all add label to aspx;

<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>



Then add your html code from cs;

protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                string myHtml = @"<div class=""gray"">
                                <ul id=""mega-menu-5"" class=""mega-menu"">
                                    <li><a href=""Home.aspx"">Dashboard</a></li>
                                    <li><a href=""#"">Catalog</a>
                                        <ul>
                                            {0}
                                        </ul>
                                    </li>
                                </ul>
                               </div>";
                string myLinks = "";

                if (_User.ValidateUser() && (Convert.ToInt32(Session["UserTypeId"]) == 1))
                {
                    myLinks = @"<li><a href=""Category.aspx"">Categories</a></li>
                            <li><a href=""SubCategory.aspx"">SubCategories</a></li>";
                }
                else if (_User.ValidateUser() && (Convert.ToInt32(Session["UserTypeId"]) == 7))
                {
                    myLinks = @"<li><a href=""SubAttribute.aspx"">Sub Attribute</a></li>
                            <li><a href=""News.aspx"">News</a></li>";
                }
                else if (_User.ValidateUser() && (Convert.ToInt32(Session["UserTypeId"]) == 8))
                {
                    myLinks = @"<li><a href=""CategoryAttribute.aspx"">Category Attribute</a></li>";
                }

                Label1.Text = string.Format(myHtml, myLinks);
            }
        }



Hope it will help you,
Ibrahim Uylas


这篇关于根据角色向用户显示特定菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆