C# 发送邮件 报错:此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站。
C# 发送邮件 报错:此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站。
报错信息分析
当你遇到如下报错时:
此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站。若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet。
这通常意味着在使用 GET 请求时,系统出于安全考虑,阻止了可能会导致敏感信息泄露给第三方网站的操作。不过,我们可以通过一些方法来解决这个问题。
解决办法
1. 检查并处理证书问题
报错很可能是由证书问题引起的。你可以尝试添加以下代码来忽略证书验证,这可能会直接解决问题:
// 忽略证书验证
ServicePointManager.ServerCertificateValidationCallback = (s, cert, chain, sslPolicyErrors) => true;
2. 在 IIS 下进行配置
若上述方法未能解决问题,你可以在 IIS 下添加如下配置:
<configuration>
<system.web>
<httpHandlers>
<add verb="GET" path="*.json" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad344e35" validate="false"/>
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<add name="JsonHandler" verb="GET" path="*.json" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad344e35" preCondition="integratedMode"/>
</handlers>
</system.webServer>
</configuration>