aspnetcore/src/Service.Abstractions/AuthorizationRequest.cs

51 lines
1.6 KiB
C#

// 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 Microsoft.IdentityModel.Protocols.OpenIdConnect;
namespace Microsoft.AspNetCore.Identity.Service
{
public class AuthorizationRequest
{
private AuthorizationRequest(AuthorizationRequestError error)
{
IsValid = false;
Error = error;
}
private AuthorizationRequest(OpenIdConnectMessage request, RequestGrants requestGrants)
{
IsValid = true;
Message = request;
RequestGrants = requestGrants;
}
public bool IsValid { get; }
public AuthorizationRequestError Error { get; }
public OpenIdConnectMessage Message { get; }
public RequestGrants RequestGrants { get; }
public static AuthorizationRequest Invalid(AuthorizationRequestError authorizationRequestError)
{
return new AuthorizationRequest(authorizationRequestError);
}
public static AuthorizationRequest Valid(
OpenIdConnectMessage request,
RequestGrants requestGrants)
{
return new AuthorizationRequest(request, requestGrants);
}
public TokenGeneratingContext CreateTokenGeneratingContext(ClaimsPrincipal user, ClaimsPrincipal application)
{
return new TokenGeneratingContext(
user,
application,
Message,
RequestGrants);
}
}
}