// 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;
namespace Microsoft.AspNet.Identity
{
///
/// Represents all the options you can used to configure the identity system.
///
public class IdentityOptions
{
///
/// Gets or sets the for the identity system.
///
///
/// The for the identity system.
///
public ClaimsIdentityOptions ClaimsIdentity { get; set; } = new ClaimsIdentityOptions();
///
/// Gets or sets the for the identity system.
///
///
/// The for the identity system.
///
public UserOptions User { get; set; } = new UserOptions();
///
/// Gets or sets the for the identity system.
///
///
/// The for the identity system.
///
public PasswordOptions Password { get; set; } = new PasswordOptions();
///
/// Gets or sets the for the identity system.
///
///
/// The for the identity system.
///
public LockoutOptions Lockout { get; set; } = new LockoutOptions();
///
/// Gets or sets the for the identity system.
///
///
/// The for the identity system.
///
public SignInOptions SignIn { get; set; } = new SignInOptions();
///
/// Gets or sets the after which security stamps are re-validated.
///
///
/// The after which security stamps are re-validated.
///
public TimeSpan SecurityStampValidationInterval { get; set; } = TimeSpan.FromMinutes(30);
///
/// Gets or sets the used to generate tokens used in account confirmation emails.
///
///
/// The used to generate tokens used in account confirmation emails.
///
public string EmailConfirmationTokenProvider { get; set; } = Resources.DefaultTokenProvider;
///
/// Gets or sets the used to generate tokens used in password reset emails.
///
///
/// The used to generate tokens used in password reset emails.
///
public string PasswordResetTokenProvider { get; set; } = Resources.DefaultTokenProvider;
///
/// Gets or sets the used to generate tokens used in email change confirmation emails.
///
///
/// The used to generate tokens used in email change confirmation emails.
///
public string ChangeEmailTokenProvider { get; set; } = Resources.DefaultTokenProvider;
///
/// Gets or sets the scheme used to identify application authentication cookies.
///
/// The scheme used to identify application authentication cookies.
public static string ApplicationCookieAuthenticationScheme { get; set; } = typeof(IdentityOptions).Namespace + ".Application";
///
/// Gets or sets the scheme used to identify external authentication cookies.
///
/// The scheme used to identify external authentication cookies.
public static string ExternalCookieAuthenticationScheme { get; set; } = typeof(IdentityOptions).Namespace + ".External";
///
/// Gets or sets the scheme used to identify Two Factor authentication cookies for round tripping user identities.
///
/// The scheme used to identify user identity 2fa authentication cookies.
public static string TwoFactorUserIdCookieAuthenticationScheme { get; set; } = typeof(IdentityOptions).Namespace + ".TwoFactorUserId";
///
/// Gets or sets the scheme used to identify Two Factor authentication cookies for saving the Remember Me state.
///
/// The scheme used to identify remember me application authentication cookies.
public static string TwoFactorRememberMeCookieAuthenticationScheme { get; set; } = typeof(IdentityOptions).Namespace + ".TwoFactorRememberMe";
///
/// Gets or sets the authentication type used when constructing an from an application cookie.
///
/// The authentication type used when constructing an from an application cookie.
public static string ApplicationCookieAuthenticationType { get; set; } = typeof(IdentityOptions).Namespace + ".Application.AuthType";
///
/// Gets or sets the authentication type used when constructing an from an external identity cookie.
///
/// The authentication type used when constructing an from an external identity cookie.
public static string ExternalCookieAuthenticationType { get; set; } = typeof(IdentityOptions).Namespace + ".External.AuthType";
///
/// Gets or sets the authentication type used when constructing an from an two factor authentication cookie.
///
/// The authentication type used when constructing an from an two factor authentication cookie.
public static string TwoFactorUserIdCookieAuthenticationType { get; set; } = typeof(IdentityOptions).Namespace + ".TwoFactorUserId.AuthType";
///
/// Gets or sets the authentication type used when constructing an from an two factor remember me authentication cookie.
///
/// The authentication type used when constructing an from an two factor remember me authentication cookie.
public static string TwoFactorRememberMeCookieAuthenticationType { get; set; } = typeof(IdentityOptions).Namespace + ".TwoFactorRemeberMe.AuthType";
}
}