Beispiel #1
0
        /// <summary>
        /// Generates claims principal using provided user
        /// </summary>
        /// <param name="authenticationType">Authentication type (ex. "Basic")</param>
        /// <param name="identity">User instance</param>
        /// <param name="authorizationHeader">Authorization header for "bypass"</param>
        /// <returns>Returns claims identity</returns>
        public static ClaimsPrincipal GeneratesClaimsPrincipal(string authenticationType,
                                                               IGenericIdentity identity, string authorizationHeader = null)
        {
            //Arguments validation
            if (string.IsNullOrEmpty(authenticationType))
            {
                throw new ArgumentNullException(nameof(authenticationType));
            }
            if (identity == null)
            {
                throw new ArgumentNullException(nameof(identity));
            }

            //Create identity claims using provided data
            ClaimsIdentity claimsIdentity = new ClaimsIdentity(authenticationType);

            claimsIdentity.AddClaim(new Claim(ClaimTypes.Name, identity.UserName));

            //With authorization header, create claims
            if (!string.IsNullOrEmpty(authorizationHeader))
            {
                claimsIdentity.AddClaim(new Claim(AuthorizationHeaderClaim, authorizationHeader));
            }

            //Generate and return principal
            return(new ClaimsPrincipal(claimsIdentity));
        }
Beispiel #2
0
        /// <summary>
        /// Updates identity set on controller context
        /// </summary>
        /// <param name="user">User instance</param>
        protected void UpdateIdentity(IGenericIdentity user)
        {
            //Validazione argomenti
            if (user == null)
            {
                throw new ArgumentNullException(nameof(user));
            }

            //impostazione local dell'identità
            CurrentIdentityUser = user;

            //Generazione del principal
            var identity = ClaimsPrincipalUtils.GeneratesClaimsPrincipal("Mock", CurrentIdentityUser);

            Controller.ControllerContext = new ControllerContext
            {
                //HTTP context default
                HttpContext = new DefaultHttpContext
                {
                    //Imposto l'identity generata
                    User = identity
                }
            };
        }