public static CardIdentity FromIdentity(IIdentity identity) { var claimsIdentity = identity as ClaimsIdentity; if (claimsIdentity == null) { claimsIdentity = new ClaimsIdentity(identity.AuthenticationType); claimsIdentity.AddClaim(new Claim(System.Security.Claims.ClaimTypes.Name, identity.Name)); } var cardIdentity = new CardIdentity(identity.AuthenticationType); cardIdentity.AddClaims(claimsIdentity.Claims); return cardIdentity; }
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }); using (var signInManager = (SignInManager)_resolver.GetService(typeof(SignInManager))) { SignInStatus status = await signInManager.PasswordSignInAsync(context.UserName, context.Password, false, true); switch (status) { case SignInStatus.Success: // returns {"access_token": "...", "token_type": "bearer", "expires_in": 86399 } Card card = await signInManager.UserManager.FindByNameAsync(context.UserName); var identity = new CardIdentity(card, context.Options.AuthenticationType); context.Validated(identity); break; case SignInStatus.LockedOut: // returns {"error": "locked_card"} context.SetError("locked_card"); break; default: // returns {"error": "invalid_pin"} context.SetError("invalid_pin"); break; } } }
public CanGetBalanceInfo() { _cardIdentity = new CardIdentity(123, "0123012301230123"); TestableDateTime.Init(); }