Ejemplo n.º 1
0
        public static void StoreInCookie(AuthTokenProperties tokenInformation, HttpResponse response)
        {
            string serializedJson = JsonConvert.SerializeObject(tokenInformation);

            response.Cookies.Append(AuthCookieName, serializedJson, new CookieOptions()
            {
                HttpOnly = true,
                Secure   = false,                      // In production, this should be set to true
                Expires  = DateTime.UtcNow.AddDays(90) // Feel free to tweak expiry for your application
            });
        }
        public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            AuthTokenProperties tokenProperties = CookieUtils.GetCookieFromRequest(context.HttpContext.Request);

            if (tokenProperties != null)
            {
                // Check if tokens are expired
                if (DateTime.UtcNow > tokenProperties.Expiry)
                {
                    // Renew them
                    tokenProperties = await MsGraphAuthUtils.Instance.ExchangeRefreshTokenForAuthInfo(tokenProperties.RefreshToken);
                }

                AuthContext.SetContext(context.HttpContext, tokenProperties);
            }

            await next();
        }
 public static void SetContext(HttpContext context, AuthTokenProperties tokenProperties)
 {
     context.Items[AuthContextKey] = tokenProperties;
 }