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;
}
}
}