using IdentityServer.Models; using IdentityServer3.Core.Extensions; using IdentityServer3.Core.Models; using IdentityServer3.Core.Services.Default; using System.Collections.Generic; using System.Linq; using System.Security.Claims; using System.Threading.Tasks; namespace IdentityServer.Extensions { public class TaloyhtioUserService : UserServiceBase { private static readonly List Users = new List(); public static Task AddUserAsync(TaloyhtioUser data) { var user = Users.SingleOrDefault(x => x.Username == data.Username); if (user == null) { Users.Add(data); } else { user.Claims = data.Claims; } return Task.FromResult(0); } public override Task AuthenticateLocalAsync(LocalAuthenticationContext context) { var user = Users.SingleOrDefault(x => x.Username == context.UserName /*&& x.Password == context.Password*/); if (user != null) { context.AuthenticateResult = new AuthenticateResult(user.Subject, user.Username); } return Task.FromResult(0); } public override Task GetProfileDataAsync(ProfileDataRequestContext context) { var user = Users.SingleOrDefault(x => x.Subject == context.Subject.GetSubjectId()); if (user != null) { context.IssuedClaims = user.Claims.Where(x => context.RequestedClaimTypes.Contains(x.Type)); } return Task.FromResult(0); } } }