private IObservable <string> GenerateToken(User user)
        {
            return(SingleObservable.Create(() =>
            {
                var handler = new JwtSecurityTokenHandler();

                List <Claim> claims = new List <Claim>();
                claims.Add(new Claim(ClaimTypes.Name, user.Name));
                claims.Add(new Claim(ClaimTypes.Email, user.Email));
                foreach (var userRole in user.UserRoles)
                {
                    claims.Add(new Claim(ClaimTypes.Role, userRole.Role.Description));
                }

                ClaimsIdentity identity = new ClaimsIdentity(new GenericIdentity(ClaimTypes.NameIdentifier, user.Id.ToString()), claims);

                var securityToken = handler.CreateToken(new SecurityTokenDescriptor
                {
                    Issuer = JwtTokenDefinitions.Issuer,
                    Audience = JwtTokenDefinitions.Audience,
                    SigningCredentials = JwtTokenDefinitions.SigningCredentials,
                    Subject = identity,
                    Expires = DateTime.Now.Add(JwtTokenDefinitions.TokenExpirationTime),
                    NotBefore = DateTime.Now
                });

                return handler.WriteToken(securityToken);
            }));
        }
Пример #2
0
 public IObservable <ValidationResult> CheckAsync <T>(IValidator <T> validator, T obj) where T : class
 {
     return(SingleObservable.Create(() => Check(validator, obj)));
 }
Пример #3
0
 public IObservable <TEntity> UpdateAsync(TEntity item) => SingleObservable.Create(() => Update(item));
Пример #4
0
 public IObservable <TEntity> ReadAsync(TPrimaryKey id) => SingleObservable.Create(() => Read(id));
Пример #5
0
 public IObservable <TEntity> DeleteAsync(TPrimaryKey id) => SingleObservable.Create(() => Delete(id));
Пример #6
0
 public IObservable <User> LoginAsync(ICredential credential)
 {
     return(SingleObservable.Create(() => Login(credential)));
 }
Пример #7
0
 public IObservable <bool> IsRegistredAsync(User user)
 {
     return(SingleObservable.Create(() => IsRegistred(user)));
 }
Пример #8
0
 public Single(SingleObservable <T> parent, IObserver <T> observer, IDisposable cancel) : base(observer, cancel)
 {
     this.parent    = parent;
     this.seenValue = false;
 }