using Microsoft.AspNet.Authentication; using Microsoft.AspNet.Http; using Microsoft.AspNet.Http.Authentication; using System; using System.Collections.Generic; using System.Security.Claims; namespace OAuth.AspNet.AuthServer { /// /// Provides context information used at the end of a token-endpoint-request. /// public class OAuthTokenEndpointResponseContext : BaseOAuthEndpointContext { /// /// Initializes a new instance of the class /// /// /// /// /// public OAuthTokenEndpointResponseContext(HttpContext context, OAuthAuthorizationServerOptions options, AuthenticationTicket ticket, TokenEndpointRequest tokenEndpointRequest, string accessToken, IDictionary additionalResponseParameters) : base(context, options) { if (ticket == null) { throw new ArgumentNullException("ticket"); } Principal = ticket.Principal; Properties = ticket.Properties; TokenEndpointRequest = tokenEndpointRequest; AdditionalResponseParameters = new Dictionary(StringComparer.Ordinal); TokenIssued = Principal != null; AccessToken = accessToken; AdditionalResponseParameters = additionalResponseParameters; } /// /// Gets the identity of the resource owner. /// public ClaimsPrincipal Principal { get; private set; } /// /// Dictionary containing the state of the authentication session. /// public AuthenticationProperties Properties { get; private set; } /// /// The issued Access-Token /// public string AccessToken { get; private set; } /// /// Gets information about the token endpoint request. /// public TokenEndpointRequest TokenEndpointRequest { get; set; } /// /// Gets whether or not the token should be issued. /// public bool TokenIssued { get; private set; } /// /// Enables additional values to be appended to the token response. /// public IDictionary AdditionalResponseParameters { get; private set; } /// /// Issues the token. /// /// /// public void Issue(ClaimsPrincipal principal, AuthenticationProperties properties) { Principal = principal; Properties = properties; TokenIssued = true; } } }