/// <summary> /// Add general claims /// </summary> public void AddClaimsToIdentity(string role, string name, string userId, TimeSpan userTimeZoneOffset, ClaimsIdentity identity) { ClaimHelper.AddClaim(new Claim(ClaimTypes.Role, role), identity); // role claim ClaimHelper.AddClaim(new Claim(ClaimTypes.Name, name), identity); // user name claim ClaimHelper.AddClaim(new Claim(ISTUserClaims.UserTimeZoneOffset, userTimeZoneOffset.ToString()), identity); // User TimeZoneOffset claim }
/// <summary> /// Add Domain License Detail Claims /// </summary> private void AddDomainLicenseDetailClaims(long domainKey, ClaimsIdentity identity) { DomainLicenseDetail domainLicenseDetail = null; //domainLicenseDetailsRepository.GetDomainLicenseDetailByDomainKey(domainKey); if (domainLicenseDetail != null) { var claim = new Claim(CaresUserClaims.DomainLicenseDetail, ClaimHelper.Serialize( new DomainLicenseDetailClaim { UserDomainKey = domainLicenseDetail.UserDomainKey, Branches = domainLicenseDetail.Branches, FleetPools = domainLicenseDetail.FleetPools, Employee = domainLicenseDetail.Employee, RaPerMonth = domainLicenseDetail.RaPerMonth, Vehicles = domainLicenseDetail.Vehicles }), typeof(DomainLicenseDetailClaim).AssemblyQualifiedName); ClaimHelper.AddClaim(claim, identity); } else { throw new InvalidOperationException("No Domain License Detail data found!"); } }
/// <summary> /// Add general claims /// </summary> public void AddClaimsToIdentity(long domainKey, string defaultRoleName, string userName, TimeSpan userTimeZoneOffset, ClaimsIdentity identity) { ClaimHelper.AddClaim(new Claim(CaresUserClaims.UserDomainKey, domainKey. ToString(CultureInfo.InvariantCulture)), identity); //domainkey claim ClaimHelper.AddClaim(new Claim(CaresUserClaims.Role, defaultRoleName), identity); // role claim ClaimHelper.AddClaim(new Claim(CaresUserClaims.Name, userName), identity); // user name claim //AddDomainLicenseDetailClaims(domainKey, identity); // domain license detail claim ClaimHelper.AddClaim(new Claim(CaresUserClaims.UserTimeZoneOffset, userTimeZoneOffset.ToString()), identity); // User TimeZoneOffset claim }
/// <summary> /// Set User Permission /// </summary> private void SetUserPermissions(AspNetUser user, ClaimsIdentity identity) { IList <MenuRight> menuRights; if (user.AspNetRoles == null || user.AspNetRoles.Count < 1) { return; } if (user.AspNetRoles.Any(roles => roles.Name == CaresApplicationRoles.SystemAdministrator)) { menuRights = user.AspNetRoles.FirstOrDefault(roles => roles.Name == CaresApplicationRoles.SystemAdministrator).MenuRights.ToList(); } else if (user.AspNetRoles.Any(roles => roles.Name == CaresApplicationRoles.Admin)) { menuRights = user.AspNetRoles.FirstOrDefault(roles => roles.Name == CaresApplicationRoles.Admin).MenuRights.ToList(); } else { menuRights = user.AspNetRoles.FirstOrDefault().MenuRights.ToList(); } IEnumerable <string> PermissionKeyClaims = menuRights.Select(menuRight => menuRight.CreatePermissionKey()); ClaimHelper.AddClaim(new Claim(CaresUserClaims.UserPermissionSet, JsonConvert.SerializeObject(PermissionKeyClaims)), identity); }