Anapher/Strive

View on GitHub
src/Services/Identity/Identity.API/DemoUserProvider.cs

Summary

Maintainability
A
0 mins
Test Coverage
using System;
using System.Text;
using System.Text.RegularExpressions;
using Duende.IdentityServer.Test;
using Identity.API.Quickstart;

namespace Identity.API
{
    public class DemoUserProvider : IUserProvider
    {
        public bool ValidateCredentials(string username, string password)
        {
            return !string.IsNullOrWhiteSpace(username) && username.Length < 12 &&
                   Regex.IsMatch(username, "^[a-zA-Z0-9]+$");
        }

        public TestUser FindByUsername(string username)
        {
            return new()
            {
                Username = username, IsActive = true, SubjectId = UsernameToUserId(username), Password = "password",
            };
        }

        public string UsernameToUserId(string username)
        {
            return Convert.ToHexString(Encoding.ASCII.GetBytes(username));
        }

        public string IdToUsername(string id)
        {
            return Encoding.ASCII.GetString(Convert.FromHexString(id));
        }
    }
}