protected override Task <AuthenticateResult> HandleAuthenticateAsync() { var emailValidationKeyModel = EmailValidationKeyModel.FromRequest(Context.Request); if (!emailValidationKeyModel.Type.HasValue) { return(SecurityContext.IsAuthenticated ? Task.FromResult(AuthenticateResult.Success(new AuthenticationTicket(Context.User, new AuthenticationProperties(), Scheme.Name))) : Task.FromResult(AuthenticateResult.Fail(new AuthenticationException(HttpStatusCode.Unauthorized.ToString())))); } EmailValidationKeyProvider.ValidationResult checkKeyResult; try { checkKeyResult = emailValidationKeyModel.Validate(EmailValidationKeyProvider, AuthContext, TenantManager, UserManager, AuthManager); } catch (ArgumentNullException) { checkKeyResult = EmailValidationKeyProvider.ValidationResult.Invalid; } var claims = new List <Claim>() { new Claim(ClaimTypes.Role, emailValidationKeyModel.Type.ToString()) }; if (checkKeyResult == EmailValidationKeyProvider.ValidationResult.Ok) { if (!SecurityContext.IsAuthenticated) { if (emailValidationKeyModel.UiD.HasValue && !emailValidationKeyModel.UiD.Equals(Guid.Empty)) { SecurityContext.AuthenticateMe(emailValidationKeyModel.UiD.Value, claims); } else { SecurityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem, claims); } } else { SecurityContext.AuthenticateMe(SecurityContext.CurrentAccount, claims); } } var result = checkKeyResult switch { EmailValidationKeyProvider.ValidationResult.Ok => AuthenticateResult.Success(new AuthenticationTicket(Context.User, new AuthenticationProperties(), Scheme.Name)), _ => AuthenticateResult.Fail(new AuthenticationException(HttpStatusCode.Unauthorized.ToString())) }; return(Task.FromResult(result)); } }
public ValidationResult CheckConfirm([FromBody] EmailValidationKeyModel model) { return(model.Validate(EmailValidationKeyProvider, AuthContext, TenantManager, UserManager, AuthManager)); }
public ValidationResult CheckConfirm([FromBody] EmailValidationKeyModel model) { return(model.Validate()); }
public ValidationResult CheckConfirmFromForm([FromForm] EmailValidationKeyModel model) { return(EmailValidationKeyModelHelper.Validate(model)); }