private User GetUser() { try // may not have a context if class instantiated during start-up for initial db seeding { Microsoft.IdentityModel.Claims.ClaimsIdentity claimsIdentity = HttpContext.Current.User.Identity as Microsoft.IdentityModel.Claims.ClaimsIdentity; if (claimsIdentity == null || !claimsIdentity.IsAuthenticated) { return(null); } Microsoft.IdentityModel.Claims.Claim nameIdentifierClaim = claimsIdentity.Claims.Where(candidate => candidate.ClaimType.EndsWith("nameidentifier", StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (nameIdentifierClaim == null) { return(null); } Microsoft.IdentityModel.Claims.Claim identityProviderClaim = claimsIdentity.Claims.Where(candidate => candidate.ClaimType.EndsWith("identityprovider", StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (identityProviderClaim == null) { return(null); } return(_storage.Users.Where(u => u.NameIdentifier == nameIdentifierClaim.Value).FirstOrDefault()); } catch { return(null); } }
public static string GetIdentityProvider() { Microsoft.IdentityModel.Claims.ClaimsIdentity claimsIdentity = System.Web.HttpContext.Current.User.Identity as Microsoft.IdentityModel.Claims.ClaimsIdentity; if (claimsIdentity == null || !claimsIdentity.IsAuthenticated) { return(null); } Microsoft.IdentityModel.Claims.Claim identityProviderClaim = claimsIdentity.Claims.Where(candidate => candidate.ClaimType.EndsWith("identityprovider", StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (identityProviderClaim == null) { return(null); } return(identityProviderClaim.Value); }