public bool IsAuthorized(ClaimsPrincipal User, string PermissionName, string Permissions) { User user = new User(); user.UserId = -1; user.Roles = ""; if (User != null) { var idclaim = User.Claims.Where(item => item.Type == ClaimTypes.PrimarySid).FirstOrDefault(); if (idclaim != null) { user.UserId = int.Parse(idclaim.Value); foreach (var claim in User.Claims.Where(item => item.Type == ClaimTypes.Role)) { user.Roles += claim.Value + ";"; } if (user.Roles != "") { user.Roles = ";" + user.Roles; } } } return(UserSecurity.IsAuthorized(user, PermissionName, Permissions)); }
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, PermissionRequirement requirement) { // permission is scoped based on EntityId which must be passed as a querystring parameter var ctx = HttpContextAccessor.HttpContext; if (ctx != null && ctx.Request.Query.ContainsKey("entityid")) { int EntityId = int.Parse(ctx.Request.Query["entityid"]); string permissions = Permissions.EncodePermissions(EntityId, Permissions.GetPermissions(requirement.EntityName, EntityId, requirement.PermissionName).ToList()); User user = new User(); user.UserId = -1; user.Roles = ""; if (context.User != null) { var idclaim = context.User.Claims.Where(item => item.Type == ClaimTypes.PrimarySid).FirstOrDefault(); if (idclaim != null) { user.UserId = int.Parse(idclaim.Value); foreach (var claim in context.User.Claims.Where(item => item.Type == ClaimTypes.Role)) { user.Roles += claim.Value + ";"; } if (user.Roles != "") { user.Roles = ";" + user.Roles; } } } if (UserSecurity.IsAuthorized(user, requirement.PermissionName, permissions)) { context.Succeed(requirement); } } return(Task.CompletedTask); }
public bool IsAuthorized(ClaimsPrincipal User, string EntityName, int EntityId, string PermissionName) { string permissionstrings = Permissions.EncodePermissions(EntityId, Permissions.GetPermissions(EntityName, EntityId, PermissionName).ToList()); User user = new User(); user.UserId = -1; user.Roles = ""; if (User != null) { var idclaim = User.Claims.Where(item => item.Type == ClaimTypes.PrimarySid).FirstOrDefault(); if (idclaim != null) { user.UserId = int.Parse(idclaim.Value); foreach (var claim in User.Claims.Where(item => item.Type == ClaimTypes.Role)) { user.Roles += claim.Value + ";"; } if (user.Roles != "") user.Roles = ";" + user.Roles; } } return UserSecurity.IsAuthorized(user, PermissionName, permissionstrings); }
public bool IsAuthorized(ClaimsPrincipal principal, string permissionName, string permissions) { return(UserSecurity.IsAuthorized(GetUser(principal), permissionName, permissions)); }
public bool IsAuthorized(ClaimsPrincipal User, string PermissionName, string Permissions) { return(UserSecurity.IsAuthorized(GetUser(User), PermissionName, Permissions)); }