【发布时间】:2014-08-12 09:10:24
【问题描述】:
我这样做了:
byte[] data = Convert.FromBase64String(str);
string decodedString = Encoding.UTF8.GetString(data);
Console.WriteLine(decodedString);
但是得到了Unhandled Exception: System.FormatException: Invalid length for a Base-64 char array or string.
在javascript中使用atob(str)给了我正确的解码str。
javascript 控制台:
atob("eyJpc3MiOiJodHRwczovL2lkZW50aXR5LXN0YWdpbmcuYXNjZW5kLnh5eiIsImF1ZCI6Imh0dHBzOi8vaWRlbnRpdHktc3RhZ2luZy5hc2NlbmQueHl6L3Jlc291cmNlcyIsImNsaWVudF9pZCI6IjY5OTRBNEE4LTBFNjUtNEZFRC1BODJCLUM2ODRBMEREMTc1OCIsInNjb3BlIjpbIm9wZW5pZCIsInByb2ZpbGUiLCJzdWIucmVhZCIsImRhdGEud3JpdGUiLCJkYXRhLnJlYWQiLCJhbGcuZXhlY3V0ZSJdLCJzdWIiOiIzNzdjMDk1Yi03ODNiLTQ3ZTctOTdiMS01YWVkOThjMDM4ZmMiLCJhbXIiOiJleHRlcm5hbCIsImF1dGhfdGltZSI6MTQwNzYxNTUwNywiaWRwIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvMDg0MGM3NjAtNmY3Yi00NTU2LWIzMzctOGMwOTBlMmQ0NThkLyIsIm5hbWUiOiJwa3NAYXNjZW5kLnh5eiIsImV4cCI6MTQwNzgzNjcxMSwibmJmIjoxNDA3ODMzMTExfQ")
"{"iss":"https://identity-staging.ascend.xyz","aud":"https://identity-staging.ascend.xyz/resources","client_id":"6994A4A8-0E65-4FED-A82B-C684A0DD1758","scope":["openid","profile","sub.read","data.write","data.read","alg.execute"],"sub":"377c095b-783b-47e7-97b1-5aed98c038fc","amr":"external","auth_time":1407615507,"idp":"https://sts.windows.net/0840c760-6f7b-4556-b337-8c090e2d458d/","name":"pks@ascend.xyz","exp":1407836711,"nbf":1407833111}"
【问题讨论】:
-
什么是
parts?一个字符串数组? -
我将更新问题以省略它。是的,它是一个数组。部分 [1] 与我在 javascript 中测试的字符串相同
-
字符串是怎么定义的,你确定字符串被正确转义了吗?
-
我只是将我在 javascript 中测试过的相同字符串复制粘贴到 c# 代码中。 str = "my_jwt_token";将再次更新问题以显示代码
标签: c# javascript