当我得到GetRolePolicyResponse.PolicyDocument。它是不可读的字符。如何将其转换为可读字符。
var inlinePolicyDetails = iamClient.GetRolePolicyAsync(new GetRolePolicyRequest
{
RoleName = "xyzRole",
PolicyName = "xyzPolicy"
}).GetAwaiter().GetResult();
Console.WriteLine(inlinePolicyDetails.PolicyDocument);
输出如下所示:
%7B%0A%20%20%20%20%22Version%22%3A%20%222012-10-17%22%2C%0A%20%20%20%20%22Statement%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Action%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22XYZ%3AABCD%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Effect%22%3A%20%22Allow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Resource%22%3A%20%22%2A%22%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%5D%0A%7D
应该是这样的:
{"Version"2012 - 10 - 17","Statement"({"Sid"VisualEditor0"Effect"Allow"Action"("XYZ: ABCD"],"Resource"*";}]}
政策文件基本上是UrlEncoded的因此它所有的特殊字符都是url编码的因此你需要解码使其可读的文本
var inlinePolicyDetails = iamClient.GetRolePolicyAsync(new GetRolePolicyRequest
{
RoleName = "xyzRole",
PolicyName = "xyzPolicy"
}).GetAwaiter().GetResult();
Console.WriteLine(inlinePolicyDetails.PolicyDocument);
Console.WriteLine(HttpUtility.UrlDecode(inlinePolicyDetails.PolicyDocument));
详细信息:https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/iam-policies-display.html