如何从 aws 策略文档中删除不可读的字符?

问题描述 投票:0回答:1

当我获得 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” ], “资源”:“*” } ] }

c# amazon-web-services urlencode aws-iam-access-analyzer
1个回答
0
投票

政策文件基本上是 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

© www.soinside.com 2019 - 2024. All rights reserved.