public static string CreateJwtToken(string privateKey, JsonWebTokenPayload payloadObj)
        {
            var payload = new Dictionary <string, object>
            {
                { "iat", payloadObj.IssuedAtTime },
                { "nbf", payloadObj.NotBefore },
                { "exp", payloadObj.Expiry },
                { "jti", payloadObj.Jti },
                { "aud", payloadObj.Aud },
                { "bra", payloadObj.BranchCode },
                { "abt", payloadObj.AbtaNumber },
                { "emp", payloadObj.EmployeeId },
                { "ini", payloadObj.Initials },
                { "crt", payloadObj.CreatedBy }
            };

            var header = new Dictionary <string, object>
            {
                { "alg", "RS256" },
                { "typ", "JWT" }
            };

            var rsa = new RSACryptoServiceProvider();

            rsa.FromXmlString(privateKey);
            return(JWT.Encode(payload, rsa, JwsAlgorithm.RS256, header));
        }
Esempio n. 2
0
        private HttpRequestMessage CreateRequest(JsonWebTokenPayload payload)
        {
            var fileName   = ConfigurationManager.AppSettings["privateKeyFileName"];
            var privateKey = File.ReadAllText(fileName);

            var token = WebServiceExchangeHelper.CreateJwtToken(privateKey, payload);
            HttpRequestMessage request = new HttpRequestMessage();

            request.Headers.Add("Authorization", "Bearer " + token);
            return(request);
        }
Esempio n. 3
0
        private JsonWebTokenPayload GetPayload()
        {
            var payload = new JsonWebTokenPayload
            {
                IssuedAtTime = WebServiceExchangeHelper.GetIssuedAtTime().ToString(),
                NotBefore    = WebServiceExchangeHelper.GetNotBeforeTime("100").ToString(),
                Expiry       = WebServiceExchangeHelper.GetExpiry("100").ToString(),
                Jti          = WebServiceExchangeHelper.GetJti().ToString(),
                Aud          = "CRM",
                BranchCode   = "001",
                AbtaNumber   = "002",
                EmployeeId   = "1010",
                Initials     = "IMS",
                CreatedBy    = "IMS"
            };

            return(payload);
        }
Esempio n. 4
0
        private JsonWebTokenPayload GetPayload(Entity login, string expiredSeconds, string notBeforeSeconds)
        {
            var payload = new JsonWebTokenPayload
            {
                IssuedAtTime = WebServiceExchangeHelper.GetIssuedAtTime().ToString(),
                NotBefore    = WebServiceExchangeHelper.GetNotBeforeTime(notBeforeSeconds).ToString(),
                Expiry       = WebServiceExchangeHelper.GetExpiry(expiredSeconds).ToString(),
                Jti          = WebServiceExchangeHelper.GetJti().ToString(),
                BranchCode   = login.GetAttributeValue <string>("tc_branchcode"),
                AbtaNumber   = login.GetAttributeValue <string>("tc_abtanumber"),
                EmployeeId   = login.GetAttributeValue <string>("tc_employeeid"),
                Initials     = login.GetAttributeValue <string>("tc_initials"),
                CreatedBy    = login.GetAttributeValue <EntityReference>("createdby").Name,
                Aud          = DataKey.AudOneWebRetail
            };

            return(payload);
        }
Esempio n. 5
0
        private JsonWebTokenPayload DecodePayload(string token)
        {
            if (string.IsNullOrWhiteSpace(token))
            {
                throw new ArgumentNullException(Crm.Service.Constants.Parameters.Token);
            }

            var parts = token.Split(Crm.Service.Constants.Delimiters.Dot);

            if (parts.Length != 3)
            {
                throw new FormatException("Token must consist from 3 delimited by dot parts");
            }

            var payLoad                 = parts[1];
            var payLoadJson             = Encoding.UTF8.GetString(JsonWebToken.Base64UrlDecode(payLoad));
            JsonWebTokenPayload payload = JsonConvert.DeserializeObject <JsonWebTokenPayload>(payLoadJson);

            return(payload);
        }