コード例 #1
0
            private static Zecurity.Permission PopulatePermissionFromXmlNode(XmlNode permission)
            {
                Zecurity.Permission res = new Zecurity.Permission();

                res.ID     = new Guid(permission.Attributes["ID"].Value);
                res.Path   = permission.Attributes["Path"].Value;
                res.Add    = Convert.ToBoolean(permission.Attributes["Add"].Value);
                res.Edit   = Convert.ToBoolean(permission.Attributes["Edit"].Value);
                res.Delete = Convert.ToBoolean(permission.Attributes["Delete"].Value);
                res.Name   = permission.Attributes["Name"].Value;
                //res.Trusted = Convert.ToBoolean(permission.Attributes["Trusted"].Value);

                return(res);
            }
コード例 #2
0
            public void CheckPermessionForPage()
            {
                string currentPath   = HttpContext.Current.Request.Path;
                string currentFolder = currentPath.Remove(currentPath.LastIndexOf("/") + 1).ToLower();

                if (isSafePath(currentPath))
                {
                    return;
                }
                //if (HttpContext.Current.User.IsInRole(DCRoles.SiteOverallAdminsRoles)) return;
                if (Roles.IsUserInRole(DCRoles.SiteOverallAdminsRoles))
                {
                    return;
                }
                List <Zecurity.Permission> permissions = Zecurity.ZecurityManager.GetAllUserPermissions(new Guid(Membership.GetUser(HttpContext.Current.User.Identity.Name).ProviderUserKey.ToString()));

                if (permissions.Count == 0)
                {
                    RaiseErrorFlag();
                }
                Zecurity.Permission folderPermission = permissions.Find(delegate(Zecurity.Permission p) { return(currentFolder.ToLower().StartsWith(p.Path.ToLower())); });
                if (folderPermission == null)
                {
                    RaiseErrorFlag();
                }
                if (currentPath.ToLower().EndsWith("add.aspx"))
                {
                    if (!folderPermission.Add)
                    {
                        RaiseErrorFlag();
                    }
                }
                if (currentPath.ToLower().EndsWith("edit.aspx"))
                {
                    if (!folderPermission.Edit)
                    {
                        RaiseErrorFlag();
                    }
                }
                if (currentPath.ToLower().EndsWith("delete.aspx"))
                {
                    if (!folderPermission.Delete)
                    {
                        RaiseErrorFlag();
                    }
                }
            }
コード例 #3
0
            public static bool UserCanExecuteCommand(CommandName commandName)
            {
                bool res = false;

                if (HttpContext.Current.User == null)
                {
                    return(false);
                }
                string userName = HttpContext.Current.User.Identity.Name;

                //---------------------------------------------------------------------------------
                if (HttpContext.Current.User.IsInRole(DCRoles.SiteOverallAdminsRoles))
                {
                    return(true);
                }
                if (HttpContext.Current.User.IsInRole(DCRoles.SiteMasterAdmin))
                {
                    return(true);
                }
                if (HttpContext.Current.User.IsInRole(DCRoles.SubAdminsRole))
                {
                    return(true);
                }

                //---------------------------------------------------------------------------------
                HttpContext context     = HttpContext.Current;
                string      currentPath = context.Request.Path;

                if (context.Items.Contains("RealPath"))
                {
                    currentPath = (string)context.Items["RealPath"];
                }
                //------------------------------------------------------------------
                string currentfolder = currentPath.Remove(currentPath.LastIndexOf("/") + 1).ToLower();
                List <Zecurity.Permission> permissions = GetAllUserPermissions(new Guid(Membership.GetUser(userName).ProviderUserKey.ToString()));

                Zecurity.Permission folderPermission =
                    permissions.Find(delegate(Zecurity.Permission p) { return(currentfolder.ToLower().StartsWith(p.Path.ToLower())); });
                if (folderPermission == null)
                {
                    return(false);
                }

                switch (commandName)
                {
                case CommandName.Add:
                    if (folderPermission.Add)
                    {
                        res = true;
                    }
                    break;

                case CommandName.Edit:
                    if (folderPermission.Edit)
                    {
                        res = true;
                    }
                    break;

                case CommandName.Delete:
                    if (folderPermission.Delete)
                    {
                        res = true;
                    }
                    break;

                case CommandName.Trusted:
                    if (folderPermission.Trusted)
                    {
                        res = true;
                    }
                    break;

                default:
                    res = false;
                    break;
                }


                return(res);
            }