C#을 사용하는 Azure API 관리 고급 정책 - II
또한 이 문서의 I부here를 참조하십시오.
조건 및 Ip 필터 정책과 고급 C# 코드 내부 정책을 수행할 수 있는 MSDN의 다음this article을 통해 수행할 수 있습니다.
먼저 Namedvalues 탭 아래의 Api Management 내에서 Namedvalue를 만듭니다.

키 이름: IpAllowList 값:
[
{
"User":"user1",
"subscriptionKey":"subskeyforuser1",
"AllowedIps" : ["192.168.1.3","192.168.1.4","192.168.1.5","192.168.3.4","13.91.284.72"]
}
 ]
정책 내에서 Namedvalue json 콘텐츠를 가져오려면 아래 코드를 사용하세요.
<set-variable name="IAllowListNamdval" value="{{IpAllowList}}" />
요청 헤더 또는 매개변수에 제공된 구독 키를 얻으려면 아래 코드를 사용하십시오.
<set-variable name="SubscriptionKeyVar" value="@{ string[] value; string value2;
            if (context.Request.Headers.TryGetValue("Ocp-Apim-Subscription-Key", out value))
            { if(value != null && value.Length > 0)
                {
                    return value[0];
                }
            }
            else if(context.Request.MatchedParameters.TryGetValue("Ocp-Apim-Subscription-Key", out value2))
            { if(value2 != null && value2 != "")
                {
                    return value2;
                }
            }
            return null;
        }" />
Namedvalue에서 얻은 json 배열에 LINQ 쿼리를 사용하면 아래 코드를 참조하십시오.
<set-variable name="AlwdIpForUser" value="@{
                    var jsonval = JArray.Parse((string)context.Variables.GetValueOrDefault<string>("IAllowListNamdval"));
                    var arr = jsonval.Where(m => m["subscriptionKey"].Value<string>() == (string)context.Variables.GetValueOrDefault<string>("SubscriptionKeyVar")).SelectMany(y => (JArray)y["AllowedIps"]);
                    return arr.Any(t => t.Value<string>() == (string)context.Request.IpAddress); }" />
그런 다음 아래 코드로 IP를 차단하는 결과를 사용합니다.
<choose>
            <when condition="@(!(bool)context.Variables.GetValueOrDefault<bool>("AlwdIpForUser"))">
                <ip-filter action="forbid">
                    <address>@(context.Request.IpAddress)</address>
                </ip-filter>
            </when>
        </choose>
[
{
"User":"user1",
"subscriptionKey":"subskeyforuser1",
"AllowedIps" : ["192.168.1.3","192.168.1.4","192.168.1.5","192.168.3.4","13.91.284.72"]
}
 ]
위의 단계에 따라 IP를 필터링하고 차단할 수 있습니다. Namedvalue에서 구독 키 기반 사용자 및 해당 IP 차단이 적용될 수 있는 이 구조의 json 콘텐츠를 가질 수 있습니다.
Reference
이 문제에 관하여(C#을 사용하는 Azure API 관리 고급 정책 - II), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ssanjeevi/azure-api-management-advanced-policies-using-c-ii-1fe1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)