public IHttpActionResult RequestToken() { var content = Request.Content.ReadAsStringAsync().Result; dynamic json = JsonConvert.DeserializeObject(content); long pkSystemUser = json.PKSystemUser.Value; string clientId = json.ClientId.Value; string publicKey = json.PublicKey; if (!Audiences.Exists(clientId)) { var key = Aparte.Security.Cryptography.SymmetricKey.GenerateSymmetricKey(); try { Audiences.Add(clientId, publicKey, key); } catch (Exception ex) { } } var encryptedToken = ProduceToken(pkSystemUser, clientId, new ApiContext()); return(Ok <string>(encryptedToken)); }
private static JWT GetBasicAuthorizationHeader(HttpRequestMessage request) { var content = request.Headers.Authorization.Parameter; if (content == null) { return(null); } var jwt = JWT.ParseFromBase64Url(content); var jwtDestination = jwt.Audience; var jwtIssuer = jwt.Issuer; if (jwtDestination != KeyFile.AUTHENTICATION_SERVER_NAME) { return(null); } if (jwtIssuer != KeyFile.JEDIX_WIN_CLIENT_NAME) { //using (var dbContext = new ApiDbContext()) //{ // var issuer = dbContext.Clients.Where(a => a.Name == jwtIssuer).FirstOrDefault(); // if (issuer == null) // return null; //} } var publicKey = jwt[JWTConstant.CLAIM_PUBLIC_KEY]; if (!Audiences.Exists(jwtIssuer)) { var key = Security.Cryptography.SymmetricKey.GenerateSymmetricKey(); Audiences.Add(jwtIssuer, publicKey, key); } return(jwt); }