private static string GetSingleOrDefaultClaimValue(this IPrincipal principal, string claimName) { try { return(principal.GetClaims() .SingleOrDefault(claim => claim.Type == claimName)?.Value); } catch (Exception exc) { var principalName = principal.GetName(); var methodName = MethodBase.GetCurrentMethod().Name; if (principal == null) { Trace.TraceError($"{principalName}: {methodName}: principal is NULL"); } else { var claims = principal.GetClaims(); if (claims == null) { Trace.TraceError($"{principalName}: {methodName}: claims is NULL"); } } LogException(principalName, methodName, exc); return(null); } }
public static List <string> GetSamplesRoles(this IPrincipal principal) { try { return(principal.GetClaims() .Where(claim => claim.Type == ClaimTypes.GroupSid) .Select(claim => new { claim, roleName = new SecurityIdentifier(claim.Value).Translate(typeof(NTAccount)).Value }) .Where(x => x.roleName.StartsWith(ActiveDirectorySettings.DomainAndPrefix, StringComparison.InvariantCultureIgnoreCase)) .Select(x => x.roleName) .ToList()); } catch (Exception exc) { var principalName = principal.GetName(); var methodName = MethodBase.GetCurrentMethod().Name; if (principal == null) { Trace.TraceError($"{principalName}: {methodName}: principal is NULL"); } else { var claims = principal.GetClaims(); if (claims == null) { Trace.TraceError($"{principalName}: {methodName}: claims is NULL"); } } LogException(principalName, methodName, exc); return(null); } }