Ejemplo n.º 2
0
        public async Task CreateAsync(AuthenticationTokenCreateContext context)
        {
            var clientid = context.Ticket.Properties.Dictionary["as:client_id"];

            if (string.IsNullOrEmpty(clientid))
            {
                return;
            }

            var refreshTokenId = Guid.NewGuid().ToString("n");

            using (var db = new OAuthEntities())
            {
                var refreshTokenLifeTime = context.OwinContext.Get <TimeSpan>(ProviderKeys.TokenTimeSpan);

                var token = new RefreshToken
                {
                    Id         = refreshTokenId.ToHash(),
                    ClientId   = int.Parse(clientid),
                    Subject    = context.Ticket.Identity.Name,
                    IssuedUtc  = DateTime.UtcNow,
                    ExpiresUtc = DateTime.UtcNow.AddMinutes(refreshTokenLifeTime.TotalMinutes)
                };

                context.Ticket.Properties.IssuedUtc  = token.IssuedUtc;
                context.Ticket.Properties.ExpiresUtc = token.ExpiresUtc;

                token.ProtectedTicket = context.SerializeTicket();

                db.RefreshToken.Add(token);
                await db.SaveChangesAsync();

                context.SetToken(refreshTokenId);
            }
        }
Ejemplo n.º 3
0
        private void TestData()
        {
            using (var db = new OAuthEntities())
            {
                db.Client.Add(new Client
                {
                    Name          = "test",
                    Secret        = "test".ToHash(),
                    TokenLifeTime = 15
                });

                db.User.Add(new User
                {
                    UserName = "******",
                    Password = "******".ToHash()
                });

                db.SaveChanges();
            }
        }
Ejemplo n.º 4
0
        public async Task ReceiveAsync(AuthenticationTokenReceiveContext context)
        {
            var allowedOrigin = context.OwinContext.Get <string[]>(ProviderKeys.AllowedOrigins);

            context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", allowedOrigin);

            string hashedTokenId = context.Token.ToHash();

            using (var db = new OAuthEntities())
            {
                var refreshToken = await db.RefreshToken.FirstOrDefaultAsync(x => x.Id == hashedTokenId);

                if (refreshToken != null)
                {
                    //Get protectedTicket from refreshToken class
                    context.DeserializeTicket(refreshToken.ProtectedTicket);
                    db.RefreshToken.Remove(refreshToken);
                }
            }
        }
Ejemplo n.º 6
0
        public ActionResult LogOn(string userName, bool? rememberMe, string returnUrl)
        {
            var db = new OAuthEntities();
            var user = db.sys_user.FirstOrDefault(u => u.Username == userName);
            if (user == null) return View();
            this.FormsAuth.SignIn(userName, rememberMe ?? false);

            if (!String.IsNullOrEmpty(returnUrl))
            {
                return Redirect(returnUrl);
            }
            else
            {
                return RedirectToAction("Index", "Home");
            }
        }