예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
 /// <summary>
 /// Clears the authorization information from this context.
 /// </summary>
 public void ClearAuthorization()
 {
     this.RevokeAuthorization();
     this.AuthorizationContextState = new UnauthorizedAuthorizationContextState(this.authorizationStore, this.authorizationHandler);
 }