public static ClaimsPrincipal CreatePrincipal(IUserRetrieveService userRetriever, string username, string authType) { if (userRetriever is null) { throw new ArgumentNullException(nameof(userRetriever)); } if (username is null) { throw new ArgumentNullException(nameof(username)); } var user = userRetriever.ByUsername(username); if (user == null) { throw new ArgumentOutOfRangeException(nameof(username)); } if (authType == null) { throw new ArgumentNullException(nameof(authType)); } var identity = new GenericIdentity(username, authType); identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, user.Id)); return(new ClaimsPrincipal(identity)); }
public NotesBehavior(IRequestContext context, ISqlConnections sqlConnections, IUserRetrieveService userRetriever) { Context = context ?? throw new ArgumentNullException(nameof(context)); SqlConnections = sqlConnections ?? throw new ArgumentNullException(nameof(sqlConnections)); UserRetriever = userRetriever ?? throw new ArgumentNullException(nameof(userRetriever)); }
public UserDataScript(ITwoLevelCache cache, IPermissionService permissions, ITypeSource typeSource, IUserAccessor userAccessor, IUserRetrieveService userRetrieveService) { Cache = cache ?? throw new ArgumentNullException(nameof(cache)); Permissions = permissions ?? throw new ArgumentNullException(nameof(permissions)); TypeSource = typeSource ?? throw new ArgumentNullException(nameof(typeSource)); UserAccessor = userAccessor ?? throw new ArgumentNullException(nameof(userAccessor)); UserRetriever = userRetrieveService ?? throw new ArgumentNullException(nameof(userRetrieveService)); }
public ImpersonationContext(string username) { this.username = username; oldAuthorizationService = Dependency.TryResolve<IAuthorizationService>(); oldUserRetrieveService = Dependency.TryResolve<IUserRetrieveService>(); var registrar = Dependency.Resolve<IDependencyRegistrar>(); authorizationServiceReg = registrar.RegisterInstance<IAuthorizationService>(this); userRetrieveServiceReg = registrar.RegisterInstance<IUserRetrieveService>(this); }
/// <summary> /// Gets user definition for given user identity /// </summary> /// <param name="identity"></param> /// <param name="userRetrieveService">User retrieve service</param> /// <returns></returns> public static IUserDefinition GetUserDefinition(this ClaimsPrincipal identity, IUserRetrieveService userRetrieveService) { if (!IsLoggedIn(identity)) { return(null); } return(userRetrieveService.ByUsername(identity.Identity.Name)); }
public ImpersonationContext(string username) { this.username = username; oldAuthorizationService = Dependency.TryResolve <IAuthorizationService>(); oldUserRetrieveService = Dependency.TryResolve <IUserRetrieveService>(); var registrar = Dependency.Resolve <IDependencyRegistrar>(); authorizationServiceReg = registrar.RegisterInstance <IAuthorizationService>(this); userRetrieveServiceReg = registrar.RegisterInstance <IUserRetrieveService>(this); }
/// <summary> /// Gets user definition for given user identity /// </summary> /// <param name="identity"></param> /// <param name="userRetrieveService">User retrieve service</param> /// <returns></returns> public static TUserDefinition GetUserDefinition <TUserDefinition>(this ClaimsPrincipal identity, IUserRetrieveService userRetrieveService) where TUserDefinition : class, IUserDefinition { if (!IsLoggedIn(identity)) { return(null); } return((TUserDefinition)userRetrieveService.ByUsername(identity.Identity.Name)); }
public Result <ServiceResponse> Login(LoginRequest request, [FromServices] IUserPasswordValidator passwordValidator, [FromServices] IUserRetrieveService userRetriever, [FromServices] IEmailSender emailSender = null) { return(this.ExecuteMethod(() => { if (request is null) { throw new ArgumentNullException(nameof(request)); } if (string.IsNullOrEmpty(request.Username)) { throw new ArgumentNullException("username"); } if (passwordValidator is null) { throw new ArgumentNullException(nameof(passwordValidator)); } if (userRetriever is null) { throw new ArgumentNullException(nameof(userRetriever)); } var username = request.Username; var result = passwordValidator.Validate(ref username, request.Password); if (result == PasswordValidationResult.Valid) { var principal = UserRetrieveService.CreatePrincipal(userRetriever, username, authType: "Password"); HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal) .GetAwaiter().GetResult(); return new ServiceResponse(); } throw new ValidationError("AuthenticationError", Texts.Validation.AuthenticationError.ToString(Localizer)); })); }
public virtual void Dispose() { var authorizationService = Dependency.TryResolve <IAuthorizationService>(); var userRetrieveService = Dependency.TryResolve <IAuthorizationService>(); if (authorizationService != null && authorizationService != this) { throw new InvalidOperationException("Container changed! Possible multi-thread error, or disposing order mistake!"); } if (userRetrieveService != null && userRetrieveService != this) { throw new InvalidOperationException("Container changed! Possible multi-thread error, or disposing order mistake!"); } var registrar = Dependency.Resolve <IDependencyRegistrar>(); if (oldAuthorizationService == null) { registrar.Remove(authorizationServiceReg); } else { registrar.RegisterInstance <IAuthorizationService>(oldAuthorizationService); } if (oldUserRetrieveService == null) { registrar.Remove(userRetrieveServiceReg); } else { registrar.RegisterInstance <IUserRetrieveService>(oldUserRetrieveService); } oldAuthorizationService = null; oldUserRetrieveService = null; userRetrieveServiceReg = null; authorizationServiceReg = null; }
public UserPasswordValidator(ITwoLevelCache cache, ISqlConnections sqlConnections, IUserRetrieveService userRetriever, ILogger <UserPasswordValidator> log = null, IDirectoryService directoryService = null) { Cache = cache ?? throw new ArgumentNullException(nameof(cache)); SqlConnections = sqlConnections ?? throw new ArgumentNullException(nameof(sqlConnections)); UserRetriever = userRetriever ?? throw new ArgumentNullException(nameof(userRetriever)); DirectoryService = directoryService; Log = log; }
public virtual void Dispose() { var authorizationService = Dependency.TryResolve<IAuthorizationService>(); var userRetrieveService = Dependency.TryResolve<IAuthorizationService>(); if (authorizationService != null && authorizationService != this) throw new InvalidOperationException("Container changed! Possible multi-thread error, or disposing order mistake!"); if (userRetrieveService != null && userRetrieveService != this) throw new InvalidOperationException("Container changed! Possible multi-thread error, or disposing order mistake!"); var registrar = Dependency.Resolve<IDependencyRegistrar>(); if (oldAuthorizationService == null) { registrar.Remove(authorizationServiceReg); } else { registrar.RegisterInstance<IAuthorizationService>(oldAuthorizationService); } if (oldUserRetrieveService == null) { registrar.Remove(userRetrieveServiceReg); } else { registrar.RegisterInstance<IUserRetrieveService>(oldUserRetrieveService); } oldAuthorizationService = null; oldUserRetrieveService = null; userRetrieveServiceReg = null; authorizationServiceReg = null; }