private AuthenticationResult Authorise(string userName, string password) { ICommandHandlerStrategy commandHandlerStrategy = CommandHandlerStrategyFactory.Create <User>(); UserNameAndPwdAuthenticationRequest request = new UserNameAndPwdAuthenticationRequest(userName, password); commandHandlerStrategy.Execute(request); return(request.Result); }
private AuthenticationResult Authorise(IHeaderDictionary headers) { string[] acceptLanguageValues; bool acceptLanguageHeaderPresent = headers.TryGetValue(Constants.AUTHENTICATION_TOKEN, out acceptLanguageValues); if (!acceptLanguageHeaderPresent) { return(null); } string[] elementsInHeader = acceptLanguageValues.ToList()[0].Split(new string[] { Constants.AUTHENTICATION_TOKEN_SEPERATOR }, StringSplitOptions.RemoveEmptyEntries); string userName = elementsInHeader[0]; string pwd = elementsInHeader[1]; ICommandHandlerStrategy commandHandlerStrategy = CommandHandlerStrategyFactory.Create <User>(); UserNameAndPwdAuthenticationRequest request = new UserNameAndPwdAuthenticationRequest(userName, pwd); commandHandlerStrategy.Execute(request); return(request.Result); }
public void Handle(UserNameAndPwdAuthenticationRequest command) { this.ValidateUserNameAndPwdAuthenticationRequest(command); using (IUnitOfWork uow = this.CreateUnitOfWork <User>()) { IUserRepository repository = IoC.Container.Resolve <IUserRepository>(uow); User user = repository.GetActiveUser(command.UserName, EncodeHelper.EncodePassword(command.Password)); if (user == null) { command.Result = new AuthenticationResult(false); this.Publish(new OnAuthenticationFailed(command.UserName, command.Password, DateTime.UtcNow)); return; } user.GenerateLoginToken(); repository.Update(user); uow.Commit(); command.Result = ObjectHelper.Convert <AuthenticationResult>(user); command.Result.IsValid = true; this.Publish(new OnAuthenticationSuccess(user.FirstName, user.LastName, user.Email, user.LoginToken, user.TokenExpiredAfter, DateTime.UtcNow)); } }
private void ValidateUserNameAndPwdAuthenticationRequest(UserNameAndPwdAuthenticationRequest command) { IValidationException validationException = ValidationHelper.Validate(command); validationException.ThrowIfError(); }