private async Task <ReturnDto> Auth(VerifyEnum authority, AuthorityModel model) { ReturnDto ret; var authorities = _issuers["owner"].Authorities; string token = model.token; if (string.IsNullOrWhiteSpace(token)) { token = JwtHelper.GenerateToken(new Claim[] { }, 60); } var principle = JwtHelper.GetClaimsPrincipal(token); if (principle?.Identity?.IsAuthenticated == true) { try { var claimsIdentity = principle.Identity as ClaimsIdentity; var verifyResult = _issuers["owner"].Verify(authority, claimsIdentity.Claims.ToArray(), model.payload); ret = await ResultFactory(authority, verifyResult); return(ret); } catch (Exception exc) { ret = ExceptionReturn(exc); return(ret); } } return(TokenNotValid()); }
private void frmMain_Load(object sender, EventArgs e) { _se = new ServerEnum(); foreach (string key in _se.Keys) { cbxServerType.Items.Add(key); txtAssembly.Text = _se[key]; } if (cbxServerType.Items.Count > 0) { cbxServerType.SelectedIndex = 0; } cbxVerifyWay.Items.Add(""); _ve = new VerifyEnum(); foreach (string key in _ve.Keys) { cbxVerifyWay.Items.Add(key); //txtVerifyAssembly.Text = _ve[key]; } if (cbxVerifyWay.Items.Count > 0) { cbxVerifyWay.SelectedIndex = 0; } _sm.LoadFromFile(); ReindData(); SyncSelRowData(); }
public IssuerVerifyResult Verify(VerifyEnum authority, Claim[] claims, JObject payload) { var verifyAuthority = _authorities[authority]; var verifyClaims = verifyAuthority.OnVerify(claims, payload, _identifier, out bool valid); IVerifyFactory verifyFactory; IssuerVerifyResult issuerVerifyResult = new IssuerVerifyResult(); switch (authority) { case VerifyEnum.account: verifyFactory = new VerifyAccountFactory().Create(_authenticator); issuerVerifyResult = verifyFactory.Register(_authorities, verifyClaims, _identifier, _timeouts[VerifyEnum.account]); break; case VerifyEnum.otp: verifyFactory = new AuthAccountFactory().Create(_authenticator); issuerVerifyResult = verifyFactory.Register(_authorities, verifyClaims, _identifier, _timeouts[VerifyEnum.otp]); break; case VerifyEnum.login: verifyFactory = new AuthAccountFactory().Create(_authenticator); issuerVerifyResult = verifyFactory.Register(_authorities, verifyClaims, _identifier, _timeouts[VerifyEnum.login]); break; case VerifyEnum.refreshToken: verifyFactory = new AuthAccountFactory().Create(_authenticator); issuerVerifyResult = verifyFactory.Register(_authorities, verifyClaims, _identifier, _timeouts[VerifyEnum.refreshToken]); break; } return(issuerVerifyResult); }
private async Task <ReturnDto> ResultFactory(VerifyEnum authority, IssuerVerifyResult verifyResult) { ReturnDto ret = new ReturnDto(); switch (authority) { case VerifyEnum.account: case VerifyEnum.refreshToken: ret = AccountResult(verifyResult); break; case VerifyEnum.otp: case VerifyEnum.login: ret = await OtpAndUserResult(verifyResult); break; } return(ret); }
public static TEnum Enum <TEnum>(string text) where TEnum : struct, IComparable, IFormattable, IConvertible { return(VerifyEnum <TEnum> .Parse(text)); }
public static bool AttemptEnum <TEnum>(string text, out TEnum value) where TEnum : struct, IComparable, IFormattable, IConvertible { return(VerifyEnum <TEnum> .TryParse(text, out value)); }
internal void Register(IAuthority authority, VerifyEnum name, int timeout) { _authorities.Add(name, authority); _timeouts.Add(name, timeout); }
public static AuthorityIssuer Register(this AuthorityIssuer issuer, VerifyEnum name, IAuthority authority, int timeout = 60) { issuer.Register(authority, name, timeout); return(issuer); }