public WebCookieConfiguration(WebCookieConfiguration existing) : this(name: existing?.Name, httpOnly: existing?.HttpOnly ?? true, secure: existing?.Secure, path: existing?.Path, domain: existing?.Domain) { }
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); }
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); }