cleartextTrafficPermitted为false仍允许使用xamain

时间:2019-09-30 15:19:34

标签: android security xamarin.android

试图在清单中引用的Android网络安全配置config XML文件中测试不同的配置。使用针对VS 2019的面向Android 9 API 28的基本新应用模板Xamarin.Android应用和Galaxy Nexus Android 9模拟器,设置以下任一选项:

  1. 应用程序级别清单设置android:usesCleartextTraffic = false

  2. 添加网络安全配置文件,将基本配置或域配置设置为cleartextTrafficPermitted = false并从清单中引用该文件

无论哪种情况,尝试使用HttpClient GetAsync和Uri为http://www.mit.edu/privacy/的测试连接都可以正常工作,并且没有错误。在运行时对NetworkSecurityPolicy.IsCleartextTrafficPermitted的调用按预期返回false。而且,如果我更改设置以确保通过清单允许明文,那么调用肯定会返回true,因此运行时会以正确的“模式”显示其,当明文为false时,调用只会被阻塞,正如我期望的那样。明文设置是否未在模拟器上强制执行? Xamarin的HttpClient堆栈中没有强制执行吗?基本上是尝试阻止HTTP连接的明文,并且无法

1 个答案:

答案 0 :(得分:0)

弄清楚了。将Xamarin.Android Visual Studio Project选项设置为Settings> Build> Android Build> General> HttpClient Implementation选项设置为Default,这意味着HttpClient Handler是.NET的完全托管解决方案。切换到本机AndroidClientHandler可使明文设置按预期工作。 Link to MS article abt choosing a default HTTP implementation用于Xamarin.Android