コード例 #1
0
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            var  dataContextFactory = new DataContextFactory();
            var  _commonDbService   = new CommonDbService(dataContextFactory);
            bool status             = false;

            string[] allowedRoles          = AllowedRole.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
            string   utility               = WebConfigurationManager.AppSettings["ProductName"];
            var      _authorizationService = new Authorization(_commonDbService.GetCommonDataBaseContext());
            var      userRoles             = _authorizationService.GetRoleForUtility(httpContext.User.Identity.Name, utility);

            foreach (var allowedRole in allowedRoles)
            {
                if (userRoles.Contains(allowedRole))
                {
                    return(true);
                }
                else
                {
                    status = false;
                }
            }

            return(status);
        }
コード例 #2
0
        protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
        {
            var dataContextFactory = new DataContextFactory();
            var _commonDbService   = new CommonDbService(dataContextFactory);

            var userRoles = new List <string>();

            string[] allowedRoles = AllowedRole.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);

            string utility = WebConfigurationManager.AppSettings["ProductName"];

            var _authorizationService = new Authorization(_commonDbService.GetCommonDataBaseContext());

            userRoles = _authorizationService.GetRoleForUtility(HttpContext.Current.User.Identity.Name, utility);

            foreach (var allowedRole in allowedRoles)
            {
                if (!userRoles.Contains(allowedRole))
                {
                    filterContext.Result = new ViewResult
                    {
                        ViewName = "~/Views/Shared/CustomErrorMessage.cshtml"
                    };
                }
            }
        }