コード例 #1
0
 public WebCookieConfiguration(WebCookieConfiguration existing)
     : this(name: existing?.Name,
           httpOnly: existing?.HttpOnly ?? true,
           secure: existing?.Secure,
           path: existing?.Path,
           domain: existing?.Domain)
 {
 }
コード例 #2
0
        private static void SetTokenCookie(
            IOwinEnvironment context,
            WebCookieConfiguration cookieConfig,
            string value,
            DateTimeOffset?expiration,
            bool isSecureRequest,
            ILogger logger)
        {
            var domain = !string.IsNullOrEmpty(cookieConfig.Domain)
                ? $"domain={cookieConfig.Domain}"
                : null;

            var pathToken = string.IsNullOrEmpty(cookieConfig.Path)
                ? "/"
                : cookieConfig.Path;
            var path = $"path={pathToken}";


            var expires = expiration != null
                ? $"expires={FormatDate(expiration.Value)}"
                : null;

            var httpOnly = cookieConfig.HttpOnly
                ? "HttpOnly"
                : null;

            var includeSecureToken = cookieConfig.Secure ?? isSecureRequest;
            var secure             = includeSecureToken
                ? "Secure"
                : null;

            var attributeTokens =
                new[] { domain, path, expires, httpOnly, secure }
            .Where(t => !string.IsNullOrEmpty(t));

            var attributes = string.Join("; ", attributeTokens);

            SetCookie(context, cookieConfig.Name, value, attributes, logger);
        }
コード例 #3
0
        public static void DeleteTokenCookie(IOwinEnvironment context, WebCookieConfiguration cookieConfiguration, ILogger logger)
        {
            logger.Trace($"Deleting cookie '{cookieConfiguration.Name}' on response");

            SetTokenCookie(context, cookieConfiguration, string.Empty, Epoch, IsSecureRequest(context), logger);
        }