zoukankan      html  css  js  c++  java
  • Asp.Net Core MVC在View中,根据用户权限动态生成菜单

    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 id="leftmenu"></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>            
  • 相关阅读:
    字符串的操作
    前端
    HTML标签
    模块与包
    常用模块
    函数进阶
    函数初识
    文件操作
    集合及深浅拷贝
    python中的一些编码问题
  • 原文地址:https://www.cnblogs.com/jqdy/p/11655938.html
Copyright © 2011-2022 走看看