Beispiel #1
0
        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();
 }