/// <summary> /// Initializes a new instance of the <see cref="AuthorizationContext"/> class. /// </summary> /// <param name="kernel">The kernel.</param> /// <param name="authorizationStore">The <see cref="IAuthorizationStore"/>.</param> /// <param name="authorizationHandler">The <see cref="IAuthorizationHandler"/>.</param> /// <param name="authorizationContextConfiguration">The <see cref="IAuthorizationContextConfiguration"/>.</param> /// <exception cref="ArgumentNullException">The value of '<paramref name="kernel"/>', '<paramref name="authorizationHandler"/>', '<paramref name="authorizationStore"/>' and '<paramref name="authorizationContextConfiguration"/>' cannot be null. </exception> public AuthorizationContext([NotNull] IKernel kernel, [NotNull] IAuthorizationStore authorizationStore, [NotNull] IAuthorizationHandler authorizationHandler, [NotNull] IAuthorizationContextConfiguration authorizationContextConfiguration) { if (kernel == null) { throw new ArgumentNullException(nameof(kernel)); } if (authorizationStore == null) { throw new ArgumentNullException(nameof(authorizationStore)); } if (authorizationHandler == null) { throw new ArgumentNullException(nameof(authorizationHandler)); } if (authorizationContextConfiguration == null) { throw new ArgumentNullException(nameof(authorizationContextConfiguration)); } this.Kernel = kernel; this.authorizationStore = authorizationStore; this.authorizationHandler = authorizationHandler; this.AuthorizationContextConfiguration = authorizationContextConfiguration; this.AuthorizationContextState = new UnauthorizedAuthorizationContextState(authorizationStore, authorizationHandler); }
/// <summary> /// Starts the authorization process. /// </summary> public void StartAuthorization() { var authorizedAuthorizationState = this.AuthorizationContextState.StartAuthorization(); this.AuthorizationContextState = new AuthorizedAuthorizationContextState(authorizedAuthorizationState, this.authorizationStore, this.authorizationHandler, this.AuthorizationContextConfiguration.Authorization); }
/// <summary> /// Clears the authorization information from this context. /// </summary> public void ClearAuthorization() { this.RevokeAuthorization(); this.AuthorizationContextState = new UnauthorizedAuthorizationContextState(this.authorizationStore, this.authorizationHandler); }