// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Collections.Generic;
namespace Microsoft.AspNetCore.HttpsPolicy
{
///
/// Options for the Hsts Middleware
///
public class HstsOptions
{
///
/// Sets the max-age parameter of the Strict-Transport-Security header.
///
///
/// Max-age is required; defaults to 30 days.
/// See: https://tools.ietf.org/html/rfc6797#section-6.1.1
///
public TimeSpan MaxAge { get; set; } = TimeSpan.FromDays(30);
///
/// Enables includeSubDomain parameter of the Strict-Transport-Security header.
///
///
/// See: https://tools.ietf.org/html/rfc6797#section-6.1.2
///
public bool IncludeSubDomains { get; set; }
///
/// Sets the preload parameter of the Strict-Transport-Security header.
///
///
/// Preload is not part of the RFC specification, but is supported by web browsers
/// to preload HSTS sites on fresh install. See https://hstspreload.org/.
///
public bool Preload { get; set; }
///
/// A list of host names that will not add the HSTS header.
///
public IList ExcludedHosts { get; } = new List
{
"localhost",
"127.0.0.1", // ipv4
"[::1]" // ipv6
};
}
}