Exemplo n.º 1
0
        public string GetToken(string user, DateTime?expires)
        {
            var handler = new JwtSecurityTokenHandler();

            var identity = _claimsIdentityProvider.GetClaimsIdentity("abc123");

            var securityTokenDescriptor = new SecurityTokenDescriptor
            {
                // Issuer
                TokenIssuerName = _applicationSettingsProvider.GetValue("JWT.Issuer"),

                //Audience = tokenOptions.Audience,
                AppliesToAddress   = _applicationSettingsProvider.GetValue("JWT.Audience"), // Audience
                SigningCredentials = _signingCredentialsProvider.GetSigningCredentials(),
                Subject            = identity,
                //Expires = expires
                Lifetime = new Lifetime(DateTime.Now, expires)
            };

            var securityToken = handler.CreateToken(securityTokenDescriptor);

            return(handler.WriteToken(securityToken));
        }
Exemplo n.º 2
0
        public string Protect(AuthenticationTicket data)
        {
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }

            var issuer    = _appSettings.GetValue("JWT.Issuer");
            var audience  = _appSettings.GetValue("JWT.Audience");
            var validFrom = DateTime.UtcNow;
            var expires   = validFrom.AddMinutes(Convert.ToInt32(_appSettings.GetValue("JWT.Expires")));

            var signingCredentials = _signingCredentialsProvider.GetSigningCredentials();

            var token = new JwtSecurityToken(issuer, audience, data.Identity.Claims, validFrom, expires, signingCredentials);

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Transforms the specified authentication ticket into a JWT.
        /// </summary>
        /// <param name="data">The authentication ticket to transform into a JWT.</param>
        /// <returns></returns>
        public string Protect(AuthenticationTicket data)
        {
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }

            string issuer;
            string audience;

            data.Properties.Dictionary.TryGetValue("issuer", out issuer);
            data.Properties.Dictionary.TryGetValue("audience", out audience);

            if (issuer == null)
            {
                throw new InvalidOperationException("AuthenticationTicket.Properties does not include 'Issuer' value.");
            }
            if (audience == null)
            {
                throw new InvalidOperationException("AuthenticationTicket.Properties does not include 'Audience' value.");
            }

            DateTime issuedUtc = data.Properties.IssuedUtc.HasValue
                ? GetUtcDateTime(data.Properties.IssuedUtc.Value)
                : DateTime.UtcNow;

            DateTime expiresUtc = data.Properties.ExpiresUtc.HasValue
                ? GetUtcDateTime(data.Properties.ExpiresUtc.Value)
                : DateTime.UtcNow.Add(_defaultJwtExpireTimeSpan);

            SigningCredentials signingCredentials = _signingCredentialsProvider.GetSigningCredentials(issuer, audience);

            JwtSecurityToken token = new JwtSecurityToken(
                issuer: issuer,
                audience: audience,
                claims: data.Identity.Claims,
                expires: expiresUtc,
                signingCredentials: signingCredentials
                );

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }