// 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.Security.Claims; using System.Security.Principal; using Microsoft.AspNet.Http; using Microsoft.AspNet.Http.Authentication; using Microsoft.AspNet.Authentication.Notifications; using Microsoft.Framework.Internal; namespace Microsoft.AspNet.Authentication.Cookies { /// /// Context object passed to the ICookieAuthenticationProvider method ValidatePrincipal. /// public class CookieValidatePrincipalContext : BaseContext { /// /// Creates a new instance of the context object. /// /// /// Contains the initial values for identity and extra data /// public CookieValidatePrincipalContext([NotNull] HttpContext context, [NotNull] AuthenticationTicket ticket, [NotNull] CookieAuthenticationOptions options) : base(context, options) { Principal = ticket.Principal; Properties = ticket.Properties; } /// /// Contains the claims principal arriving with the request. May be altered to change the /// details of the authenticated user. /// public ClaimsPrincipal Principal { get; private set; } /// /// Contains the extra meta-data arriving with the request ticket. May be altered. /// public AuthenticationProperties Properties { get; private set; } /// /// If true, the cookie will be renewed /// public bool ShouldRenew { get; set; } /// /// Called to replace the claims principal. The supplied principal will replace the value of the /// Principal property, which determines the identity of the authenticated request. /// /// The identity used as the replacement public void ReplacePrincipal(ClaimsPrincipal principal) { Principal = principal; } /// /// Called to reject the incoming principal. This may be done if the application has determined the /// account is no longer active, and the request should be treated as if it was anonymous. /// public void RejectPrincipal() { Principal = null; } } }