コード例 #1
0
        /// <summary>
        /// Restore the credentials from the session object, refresh if needed
        /// </summary>
        /// <returns></returns>
        public static async Task <Credentials> FromSessionAsync(IRequestCookieCollection requestCookie, IResponseCookies responseCookie)
        {
            if (requestCookie == null || !requestCookie.ContainsKey(FORGE_COOKIE))
            {
                return(null);
            }

            Credentials credentials = JsonConvert.DeserializeObject <Credentials>(requestCookie[FORGE_COOKIE]);

            if (credentials.ExpiresAt < DateTime.Now)
            {
                await credentials.RefreshAsync();

                responseCookie.Delete(FORGE_COOKIE);
                responseCookie.Append(FORGE_COOKIE, JsonConvert.SerializeObject(credentials));
            }

            return(credentials);
        }