51 lines
1.6 KiB
C#
51 lines
1.6 KiB
C#
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<TaloyhtioUser> Users = new List<TaloyhtioUser>();
|
|
|
|
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);
|
|
}
|
|
}
|
|
} |