jwt token vb.net validation JWT EM VBNET JWT EM VBNET JWT EM VBNET
The solution for “jwt token vb.net validation JWT EM VBNET JWT EM VBNET JWT EM VBNET” can be found here. The following code will assist you in solving the problem.
class Program {
static string key = “401b09eab3c013d4ca54922bb802bec8fd5318192b0a75f201d8b3727429090fb337591abd3e44453b954555b7a0812e1081c39b740293f765eae731f5a65ed1”;
static void Main(string[] args) {
var stringToken = GenerateToken();
ValidateToken(stringToken);
}
private static string GenerateToken() {
var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(key));
var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);
var header = new JwtHeader(credentials);
var payload = new JwtPayload {
{ “some “, “hello “},
{ “scope”, “world”},
};
var secToken = new JwtSecurityToken(header, payload);
var handler = new JwtSecurityTokenHandler();
return handler.WriteToken(secToken);
}
private static bool ValidateToken(string authToken) {
var tokenHandler = new JwtSecurityTokenHandler();
var validationParameters = GetValidationParameters();
SecurityToken validatedToken;
IPrincipal principal = tokenHandler.ValidateToken(authToken, validationParameters, out validatedToken);
Thread.CurrentPrincipal = principal;
return true;
}
private static TokenValidationParameters GetValidationParameters() {
return new TokenValidationParameters() {
//NOT A CLUE WHAT TO PLACE HERE
};
}
}
Dim ac As ApiClient = New ApiClient()
Dim privateKeyStream() As Byte = Convert.FromBase64String(PrivateKey)
Dim tokenInfo As OAuth.OAuthToken = ac.RequestJWTUserToken(“INTEGRATION_ID”, “ACCOUNT_ID”, “https://account-d.docusign.com/oauth/token”, privateKeyStream, 1)
Dim privateKeyStream As Stream = New FileStream(“D:\docusign.pem”, FileMode.Open)
‘Dim privateKeyStream As Stream = New MemoryStream(Encoding.UTF8.GetBytes(PK))
Using SR = New StreamReader(privateKeyStream)
If Not SR Is Nothing And SR.Peek() > 0 Then
Dim privateKeyBytes() As Byte = ReadAsBytes(privateKeyStream)
‘Dim privateKeyBytes() As Byte = StreamToByteArray(privateKeyStream)
‘Dim privateKeyBytes() As Byte = Convert.FromBase64String(PrivateKey)
‘Dim privateKeyBytes() As Byte = Encoding.UTF8.GetBytes(PrivateKey)
Dim privateKeyS As String = Encoding.UTF8.GetString(privateKeyBytes)
Dim handler As JwtSecurityTokenHandler = New JwtSecurityTokenHandler()
handler.SetDefaultTimesOnTokenCreation = False
Dim descriptor As SecurityTokenDescriptor = New SecurityTokenDescriptor()
descriptor.Expires = DateTime.UtcNow.AddHours(1)
descriptor.IssuedAt = DateTime.UtcNow
Dim scopes As List(Of String) = New List(Of String)
scopes.Add(OAuth.Scope_SIGNATURE)
descriptor.Subject = New ClaimsIdentity()
descriptor.Subject.AddClaim(New Claim(“scope”, String.Join(” “, scopes)))
descriptor.Subject.AddClaim(New Claim(“aud”, “account-d.docusign.com”))
descriptor.Subject.AddClaim(New Claim(“iss”, “INTEGRATION_ID”))
descriptor.Subject.AddClaim(New Claim(“sub”, “ACCOUNT_ID”))
Dim RSA = CreateRSAKeyFromPem(privateKeyS)
Dim rsaKey As RsaSecurityKey = New RsaSecurityKey(RSA)
descriptor.SigningCredentials = New SigningCredentials(rsaKey, SecurityAlgorithms.RsaSha256Signature)
Dim Token = handler.CreateToken(descriptor)
Dim jwtToken As String = handler.WriteToken(Token)
Dim baseUri As String = String.Format(“https://{0}/”, basePath)
Dim RestClient As RestClient = New RestClient(baseUri)
RestClient.Timeout = 10000
Dim contentType As String = “application/x-www-form-urlencoded”
Dim formParams As New Dictionary(Of String, String)
formParams.Add(“grant_type”, OAuth.Grant_Type_JWT)
formParams.Add(“assertion”, jwtToken)
Dim queryParams As New Dictionary(Of String, String)
Dim headerParams As New Dictionary(Of String, String)
headerParams.Add(“Content-Type”, “application/x-www-form-urlencoded”)
headerParams.Add(“Cache-Control”, “no-store”)
headerParams.Add(“Pragma”, “no-cache”)
Dim fileParams As New Dictionary(Of String, FileParameter)
Dim pathParams As New Dictionary(Of String, String)
Dim postBody As Object = Nothing
Dim request As RestRequest = PrepareRequest(basePath, Method.POST, queryParams, postBody, headerParams, formParams, fileParams, pathParams, contentType)
Dim response As IRestResponse = RestClient.Execute(request)
If (response.StatusCode >= HttpStatusCode.OK And response.StatusCode < HttpStatusCode.BadRequest) Then
Dim tokenInfo As OAuth.OAuthToken = JsonConvert.DeserializeObject(Of OAuth.OAuthToken)(response.Content)
Return tokenInfo.access_token
Else
Throw New ApiException(response.StatusCode, "Error while requesting server, received a non successful HTTP code " & response.ResponseStatus & " with response Body: " + response.Content, response.Content)
End If
Else
Throw New ApiException(400, "Private key stream not supplied or is invalid!")
End If
End Using
Dim PrivateKey As String = "MIIEowIBAAKCAQEAjtTe7UUP/CBI9s...BLABLABLA...JfwZ2hHqFPXA9ecbhc0".Replace(vbLf, "").Replace(vbCr, "")
Dim ar1 As JObject = New JObject()
ar1.Add("typ", "JWT")
ar1.Add("alg", "RS256")
Dim header As String = Base64UrlEncoder.Encode(ar1.ToString)
Dim ar2 As JObject = New JObject()
ar2.Add("iss", "INTEGRATION_ID")
ar2.Add("sub", "GUID_VERSION_OF_USER_ID")
ar2.Add("iat", DateDiff(DateInterval.Second, New Date(1970, 1, 1), Now().ToUniversalTime))
ar2.Add("exp", DateDiff(DateInterval.Second, New Date(1970, 1, 1), DateAdd(DateInterval.Hour, 1, Now().ToUniversalTime)))
ar2.Add("aud", "account-d.docusign.com")
ar2.Add("scope", "signature")
Dim body As String = Base64UrlEncoder.Encode(ar2.ToString)
Dim stringToSign As String = header & "." & body
Dim bytesToSign() As Byte = Encoding.UTF8.GetBytes(stringToSign)
Dim keyBytes() As Byte = Convert.FromBase64String(PrivateKey)
Dim privKeyObj = Asn1Object.FromByteArray(keyBytes)
Dim privStruct = RsaPrivateKeyStructure.GetInstance(privKeyObj)
Dim sig As ISigner = SignerUtilities.GetSigner("SHA256withRSA")
sig.Init(True, New RsaKeyParameters(True, privStruct.Modulus, privStruct.PrivateExponent))
sig.BlockUpdate(bytesToSign, 0, bytesToSign.Length)
Dim signature() As Byte = sig.GenerateSignature()
Dim sign As String = Base64UrlEncoder.Encode(signature)
Return header & "." & body & "." & sign
More questions on [categories-list]
- checking and changing system volume vb.net checking and changing system volume vb.net
- selecttoken em vbnet e json
- how to call gcd in vba
- pivot data source not accepting table named range vba
- Excel PasteSpecial Format:= can’t find the argument
- refresh token em vb net
- menus act like radio buttons vb.net
- power query M substract minimum value of column -dax
- how to concatenate more than 40 lines in vba how to concatenate more than 40 lines in vba
- discern between file and folder given path vb.net
- putting marquee in vb.net
- code for reading letters only in vb 6
- vba array dimensions
- text to speech vb.net
- set datetimepicker value to null vb
- how to correct a number to 2 decimal places in vba
- System.Data.OleDb.OleDbException: ‘No value given for one or more required parameters.’
- vba file chooser
- vba code to add new column in table
- how save excel through visual basic
- make your computer talk vbscript
- for i in range vba
- vbnet make a string to unicode converter
- create new worksheet excel visual basic
- vba sendkeys
- vba is integer
- remove series name from legendvbnet
- priavte sub with multiple handels find sneder
- openfiledialog specific folder
- vbnet check if string is only symbols
- tester si une case est vide vba
- vbnet check if number is even or odd
- find days in month vba
- excel vba multiply cell value
- sort dictionary by key vba
- excel vba delete columns in range excel vba delete columns on another sheet
- VBA – Print Whole Workbook VBA – Print Whole Workbook
- excel vba formatconditions range
- VBA Dictionary Data Type
- excel vba assign shortcut key to button
- vba comment shortcut vba comment shortcut
- build an index all files of a FTP site
- vbnet find highest value in chart
- vb net dgv doesn’t keep currency format
- delete all controls from list of control vb.net delete all controls in an area vb
- vlookup columns not next to each other
- how to get value from clipboard in vbnet
- afficher un message d’erreur vba
- VBA Sort RossetaCode
- vba string length