Example #1
0
        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);
            }
        }
Example #2
0
        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);
            }
        }