当我获得 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
它看起来像这样:
{ "版本": "2012-10-17", “陈述”: [ { "Sid": "VisualEditor0", "效果": "允许", “行动”: [ “XYZ:ABCD” ], “资源”:“*” } ] }
政策文件基本上是 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