/// <summary>
        ///
        /// </summary>
        /// <param name="user"></param>
        /// <param name="within"></param>
        /// <returns></returns>
        public static bool Has(this System.Security.Principal.IPrincipal user, PermissionContext within)
        {
            bool hasRole = false;

            using (UserService service = new UserService())
            {
                UserModel _user = service.GetUser(user.Identity.Name);

                hasRole = (_user != null && _user.Role.Name.Equals(within.GetStringValue())) ? true : false;
            }

            return(hasRole);
        }
示例#2
0
        public string[] ToAspNetRoles()
        {
            List <string> list = new List <string>();

            string sc = PermissionContext.GetStringValue();

            foreach (PermissionTo pt in EnumHelper.GetOptions <PermissionTo>())
            {
                if (PermissionTo.MatchesFilter(pt))
                {
                    list.Add(string.Format("{0}_{1}", PermissionContext.GetStringValue(), pt.GetStringValue()));
                }
            }

            return(list.ToArray());
        }
        /// <summary>
        /// Determines whether an IPrinciple has Permission to do something within a PermissionContext.
        /// </summary>
        /// <param name="user"></param>
        /// <param name="permission"></param>
        /// <param name="within"></param>
        /// <returns></returns>
        public static bool Has(this System.Security.Principal.IPrincipal user, PermissionTo permission, PermissionContext within)
        {
            bool isInRole = false;

            foreach (PermissionTo pt in EnumHelper.GetOptions <PermissionTo>())
            {
                if (permission.MatchesFilter(pt))
                {
                    isInRole = user.IsInRole(string.Format("{0}_{1}", within.GetStringValue(), pt.GetStringValue()));
                    if (isInRole)
                    {
                        break;
                    }
                }
            }

            return(isInRole);
        }