C# Windows 8智能屏幕

C# Windows 8智能屏幕,c#,certificate,windows-8.1,C#,Certificate,Windows 8.1,我在Windows8上有一些奇怪的智能屏幕行为 我已经在我的计算机上安装了ASP.NET服务器,我有一个用我买的证书签名的hello world应用程序 当我启动这个烧焦的应用程序时,它会向我显示预期的智能屏幕。如果我的朋友用我给他的URL下载这个文件,他用Firefox下载,这两台计算机都在局域网中连接,然后启动应用程序,它会向他显示预期的智能屏幕。但是,如果他尝试使用C应用程序下载它,他使用WebClient.DownloadFile或WebClient.DownloadData方法编写,然

我在Windows8上有一些奇怪的智能屏幕行为

我已经在我的计算机上安装了ASP.NET服务器,我有一个用我买的证书签名的hello world应用程序

当我启动这个烧焦的应用程序时,它会向我显示预期的智能屏幕。如果我的朋友用我给他的URL下载这个文件,他用Firefox下载,这两台计算机都在局域网中连接,然后启动应用程序,它会向他显示预期的智能屏幕。但是,如果他尝试使用C应用程序下载它,他使用WebClient.DownloadFile或WebClient.DownloadData方法编写,然后手动启动它,它不会在他的计算机上显示智能屏幕,这很奇怪,如果我尝试在我的计算机上使用他的应用程序下载它,同样的情况也会发生。但如果他通过Skype向我发送下载的应用程序,我通过Skype向他返回相同的文件,那么他有两份完全相同的应用程序副本,其中我通过Skype向他返回的一份显示智能屏幕,而他通过C应用程序下载的一份则没有

所以我们尝试了第二种方法,我使用SCS框架通过套接字向他发送应用程序,同样的情况也发生了。它在他的电脑上不显示智能屏幕,但在我的电脑上显示。如果他将通过Socket接收的应用程序发送给我,我启动它,它会显示智能屏幕,但当我通过Skype返回该应用程序时,当他运行它时,它也会显示智能屏幕

另外,如果他用我的证书在他的计算机上签署了我的申请,那么当他启动计算机时,他的计算机上就没有智能屏幕。但是当他把我的电脑发给我的时候,我把他在他的电脑上签名的应用程序通过Skype退回的时候,他的电脑上就有了智能屏幕,当他运行它的时候

在整个过程中,智能屏幕显示的“无论如何运行”按钮从不被单击,并且始终使用相同的应用程序和相同的证书

几天前,也有一个问题,就是用我的证书签名的应用程序在少数几台计算机上显示智能屏幕,但在少数几台计算机上根本没有智能屏幕

我不确定我是否已经在这里很好地解释了我的问题,但我所知道的是,当我在多台计算机上运行此应用程序时,有时会出现智能屏幕,有时则没有


为什么会发生这种情况?是否有解决办法?我真的需要知道智能屏幕是否会在其他计算机上显示。我在某处读到的是,每个证书都建立了自己的声誉,之后智能屏幕就会停止弹出。我需要抓住这一刻。所以我想我应该每天运行我的应用程序2-3次,看看智能屏幕是否还在弹出,但我的方法并不可靠,因为这次测试证实了这一点,或者我做错了什么。这两台计算机都运行Windows SDK中的Windows 8.1 x64和SignTool.exe来签署文件。证书扩展名为p12。是否有其他方法来测试Smart Screen filter正在测试/寻找的相同内容?

备用数据流。浏览器编写一个备用流,指示该文件是从internet下载的。WebClient不这样做。但与其写几段,不如创建一个表格,列出SmartScreen何时在哪台计算机上显示,何时不显示,因为你的故事很难理解。你的问题到底是什么?我的问题是如何使智能屏幕始终显示,以及是否有其他方法检查智能屏幕是否会弹出。你可以帮我处理这个备用数据流,因为我明天会检查它,但这并不能解释为什么在我朋友的计算机上签名的同一应用程序不能显示智能屏幕,但当同一应用程序被签名/传输到我的计算机时,它会显示智能屏幕。