internal bool SetUserSso() { if (!User.Identity.IsAuthenticated) { return(false); } string email = null; foreach (var claim in ((ClaimsPrincipal)User).Claims) { if (claim.Type == "preferred_username") { email = claim.Value; break; } } var user = UserServices.GetUser(email); if (user == null) { user = new UserEntity { Email = email, Name = email, Surname = email, AdLogonName = email }; user = UserServices.CreateUser(user); if (user != null) { UserRoleServices.CreateUserRole(new UserRoleEntity { UserId = user.UserId, RoleId = 3 }); } } if (user == null) { return(false); } var userRoles = GetUserRoles(user.UserId); User.AddUpdateClaim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", user.Email.ToLower()); User.AddUpdateClaim("sub", user.Email.ToLower()); foreach (var userRole in userRoles) { User.AddClaim("http://schemas.microsoft.com/ws/2008/06/identity/claims/role", userRole.RoleName); } var list = ((ClaimsPrincipal)User).Claims.Where(claim => claim.Type.EndsWith("role")).Select(claim => { var roleEntity = new RoleEntity { RoleId = 1, Name = claim.Value, ApplicationId = WebConfigHelper.ApplicationIdCed, ApplicationName = "ITE.CED" }; return(roleEntity); }).ToList(); CurrentCedUser = new CedUser(user, list); CurrentCedUser.IsPrimaryDirector = EventDirectorServices.IsPrimaryDirector(CurrentCedUser.CurrentUser.Email, null, WebConfigHelper.ApplicationIdCed); CurrentCedUser.IsAssistantDirector = EventDirectorServices.IsAssistantDirector(CurrentCedUser.CurrentUser.Email, null, WebConfigHelper.ApplicationIdCed); return(true); }