- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经创建了 web api
并尝试使用 c#
发出 GET
请求,如下所示
namespace APIMCheck
{
class Program
{
static void Main(string[] args)
{
string thumbprint = "***";
string url @"https://******-us-stats-webapi.azurewebsites.net/statistics/v1/masterData/carTypes";
X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certificates = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, true);
X509Certificate2 certificate = certificates[0];
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.ClientCertificates.Add(certificate);
req.Method = WebRequestMethods.Http.Get;
Console.WriteLine(Program.CallAPI(req).ToString());
Console.Read();
}
public static string CallAPI(HttpWebRequest req)
{
var httpResponse = (HttpWebResponse)req.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
return streamReader.ReadToEnd();
}
}
public static bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
return true;
}
}
}
我收到数据响应。一切顺利。
现在,我已经创建了 Azure APIM
,它将充当上述 web API
这是在 Azure API 管理门户中配置的策略
<policies>
<inbound>
<base />
<choose>
<when condition="@(context.Request.Certificate.Verify() != true || context.Request.Certificate == null || context.Request.Certificate.Issuer != "CN=MySubCA, DC=MYEXT, DC=NET" || context.Request.Certificate.NotAfter < DateTime.Now)">
<return-response>
<set-status code="403" reason="Invalid client certificate" />
<set-body template="none">@(context.Request.Certificate.Issuer.ToString())</set-body>
</return-response>
</when>
</choose>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
现在,将 url
更改为指向 apim
string url = @"https://******-us-stats-apim.azure-api.net/statistics/v1/masterData/carTypes";
我得到以下错误
The request was aborted: Could not create SSL/TLS secure channel for HttpWebRequest
SSL/TLS 如何影响 Web API 和 APIM?
和防火墙有什么关系吗?
最佳答案
默认情况下,为 Azure API 管理网关启用 TLS 1.2。
您可以转到您的 azure api 管理(在门户上)> Protocol settings
> 打开 tls 1.2
和 ssl 3.0
.
关于c# - Azure APIM URL 抛出 System.Net.WebException - SSL/TLS 如何在 azure web api 和 azure APIM 中产生差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57706117/
在我的 azure devops 管道中,我有一个任务 AzureCLI@2,它将 api 部署到 apim。我如何使用 az apim api 来执行相同的任务更新api?我知道有一个操作可以做到这
我理解当请求包含 Ocp-Apim-Trace: true 时,如下所示: GET /api/v1/BotConfig HTTP/1.1 Host: xyz.azure-api.net Cache-C
我理解当请求包含 Ocp-Apim-Trace: true 时,如下所示: GET /api/v1/BotConfig HTTP/1.1 Host: xyz.azure-api.net Cache-C
我已经创建了 web api 并尝试使用 c# 发出 GET 请求,如下所示 namespace APIMCheck { class Program { static void Main(
我想在 Azure API 管理策略中实现客户端证书验证,以检查客户端是否具有有效证书(按照以下文档)。 https://learn.microsoft.com/en-us/azure/api-man
我有一个带有自定义域和多个 API 的 azure APIM,如下面的屏幕截图所示:- 每个 API 下都有多个端点,并且所有端点都具有相同的主机名。自定义域级别有一个协商客户端证书 设置,我只想为其
我最近将 APIM 实例从开发人员层更改为消费层,并且在验证内容策略中看到了一些奇怪的行为。在开发人员层,此策略将按预期工作并返回 400 错误以及相应的错误消息。 以下是政策: 下面是来
我目前仍在 APIM 中探索。我在有效负载 #1 中有一个有效负载,我想将其转换为另一个有效负载 #2(预期)。 我将如何编辑我的策略来构建此有效负载? 有效负载1 { "dependtee_
我正在尝试通过 APIM 将文件批量上传到 Azure 存储帐户。在本地,我可以使用 REST API 将文件上传到 azure 存储帐户。但是,通过 APIM 我无法上传文件。我收到 401 错误。
在我的口腔中,我有查询参数调用“PageSize”,我需要检查用户输入情况比较严重,需要向用户显示消息 比我在出站部分中放置的 = 20">
来自Azure API management pricing page我发现除了开发人员层和高级层之外,不支持虚拟网络。 目前,在配置 APIM 的 VN 时,我的开发人员级别订阅可以在“关闭”、“外
我在 Azure API 管理中有以下策略。这样就可以正常工作了: @{ try { // ... doing something
我正在尝试通过 Azure APIM 访问本地 API。如果我使用 VNET 和 VPN 隧道,我可以访问 On-Prem API,但是,这不是一个理想的解决方案。我正在尝试让混合连接(端口桥)以相同
有没有办法将通过 APIM 请求传入的查询参数作为路径参数传递给后端服务调用?例如: 对于以下 API 调用 base_url/a/{pathParam1}?query=Qvalue 我想将 URL
目前我已经创建了一个 Azure APIM 实例,URL 如下所示。 https://abc-test.azure-api.net 我想使用此 APIM 实例来支持开发和 QA 环境。所以我想设置如下
我正在尝试处理后端 API(REST),没有可通过 Azure APIM 访问的 swagger 文档。我希望所有调用都定向到后端 API,而不是为所有资源手动创建 GET/PUT/POST。我的所有
来自Azure API management pricing page我发现除了开发人员层和高级层之外,不支持虚拟网络。 目前,在配置 APIM 的 VN 时,我的开发人员级别订阅可以在“关闭”、“外
我在 Azure API 管理中有以下策略。这样就可以正常工作了: @{ try { // ... doing something
我正在尝试通过 Azure APIM 访问本地 API。如果我使用 VNET 和 VPN 隧道,我可以访问 On-Prem API,但是,这不是一个理想的解决方案。我正在尝试让混合连接(端口桥)以相同
有没有办法将通过 APIM 请求传入的查询参数作为路径参数传递给后端服务调用?例如: 对于以下 API 调用 base_url/a/{pathParam1}?query=Qvalue 我想将 URL
我是一名优秀的程序员,十分优秀!