Beispiel #1
0
    /// <summary>
    /// 在Session中保存当前登录职员对于当前模块拥有的所有肯定授权标示。
    /// <remarks>
    /// 在每一个模块的主界面初始化时被调用,用于在Session中保存当前登录职员对于当前模块拥有的所有肯定授权标示。
    /// 以后模块在每次需要做授权判断时只需依据Session中保存的授权标示判断即可,不用再次读数据库。
    /// 注意:如果是内置职员登录系统,则此函数将不会被调用,同时在以后的任何操作时也不会调用HasGrantPermission函数来做授权判断。
    /// </remarks>
    /// </summary>
    public static void SaveGrantPermissionsToSession()
    {
        StaffSession ss = SessionUtil.GetStaffSession();

        string moduleTag = SessionUtil.GetModuleTag();

        Staff  staff  = CommonSrv.LoadObjectById(typeof(Staff), ss.LoginId) as Staff;
        Module module = ModuleSrv.GetModuleByTag(moduleTag);

        ArrayList alGrantPermissions = staff.GetGrantPermissions(module);

        SessionUtil.SavaGrantPermissions(alGrantPermissions);
    }
Beispiel #2
0
    /// <summary>
    /// 判断当前已登录职员是否对当前模块的某项权限有肯定的授权。
    /// </summary>
    /// <remarks>
    /// 在每一个模块的主界面加载时被调用,用于确认职员的授权,进而判断哪些操作按钮需要被隐藏。
    /// 在模块的每一项操作(ashx)被执行前再次被调用,用于再次确认职员的授权,防止用户对ashx的恶意调用。
    /// 注意:如果是内置职员登录系统,则不使用Session中保存的授权标示信息做授权判断,而是直接返回true。
    /// </remarks>
    /// <param name="rightTag">权限标示。</param>
    /// <returns>是否有肯定的授权。</returns>
    public static bool HasGrantPermission(string rightTag)
    {
        StaffSession ss = SessionUtil.GetStaffSession();

        if (ss.IsInnerUser == 0)
        {
            ArrayList al = SessionUtil.GetGrantPermissions();
            return(al.Contains(rightTag));
        }
        else
        {
            return(true);
        }
    }
Beispiel #3
0
    private void LoadModuleTree()
    {
        //获取当前登录的职员信息。
        StaffSession ss = SessionUtil.GetStaffSession();
        Staff        s  = CommonSrv.LoadObjectById(typeof(Staff), ss.LoginId) as Staff;

        //获取所有顶层模块。
        IList ilModuleType = ModuleTypeSrv.GetAllTopModuleType();

        //增加模块分类和模块。
        foreach (ModuleType mt in ilModuleType)
        {
            Microsoft.Web.UI.WebControls.TreeNode node = new Microsoft.Web.UI.WebControls.TreeNode();
            tvModules.Nodes.Add(node);
            node.Type = "moduletype";
            node.Text = mt.Name;
            AddSubNodes(node, mt, s);
            node.Expanded = true;
        }

        //删除不必要的模块分类节点。
        RemoveNeedlessModuleType(null);
    }
Beispiel #4
0
 //
 //  当前已登录职员的基本信息。
 //
 public static void SavaStaffSession(StaffSession ss)
 {
     System.Web.HttpContext.Current.Session["STAFF"] = ss;
 }
Beispiel #5
0
 //
 //  当前已登录职员的基本信息。
 //
 public static void SavaStaffSession(StaffSession ss)
 {
     System.Web.HttpContext.Current.Session["STAFF"] = ss;
 }