• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Asp.NetCoreMVC在View中,根据用户权限动态生成菜单

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

1.   用户登录时,将用户的权限写入Cookie;

1 //将需要的信息写入claims后
2 var identity = new ClaimsIdentity(claims, IdentityConstants.ApplicationScheme);
3 var userPrincipal = new ClaimsPrincipal(identity);
4 await HttpContext.SignInAsync(IdentityConstants.ApplicationScheme, userPrincipal);

2.  View中,利用bootstraptreeview显示菜单,使用User.IsInRole等判断是否有相关权限,进而确定是否需要显示该部分的菜单

//部分代码
<div ></div>
<script>
    var tree = new Array();
    @if (User.IsInRole("**")||(User.HasClaim("单位","***")&&User.IsInRole("部门管理员")))
    {
        <text>
            tree.push({
                text: "***",
                selectable: false,
                nodes:
                    [
                        {
                            text: "***",
                            selectable: false,
                            nodes:
                                [
                                    {
                                        text: "***",
                                        href: "***",
                                    },
                                    。。。
                                ],
                        },
                        {
                            text: "***",
                            selectable: false,
                            nodes:
                                [
                                    {
                                        text: "当班清单",
                                        href: "/Spectroes/Index",
                                    },
                                    。。。
                                ],
                        },
                        @if (User.IsInRole("部门管理员"))
                        {
                            <text>
                                {
                                    text: "审核上传",
                                    href: "Audities",
                                    selectable: true,
                                },
                                。。。。
                            </text>
                        }
                    ]
            });
        </text>
    }

    @if (User.IsInRole("超级管理员"))
    {
        <text>
            tree.push(
                    {
                        text: "***",
                        selectable: false,
                        nodes:
                            [
                                {
                                    text: "***",
                                    selectable: false,
                                    href: "***",
                                },
                            ]
                    },
        </text>
    }
    $('#leftmenu').treeview({
        data: tree,
        icon: "glyphicon glyphicon-stop",
        color: "#000000",
        backColor: "#FFFFFF",
        collapseIcon: "glyphicon glyphicon-minus",
        checkedIcon: "glyphicon glyphicon-check",
        levels: 1,
        enableLinks: true,
        showBorder: false,
    });
</script>            

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
基于元数据驱动模型架构在ASP.Net的应用研究发布时间:2022-07-10
下一篇:
Asp.Net选择TreeView前面的复选框引起回发发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap