Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据从web应用程序获取到客户端计算机上特定文件夹中的XML文件中而无需输入的方法_C#_Asp.net_Wcf_Websocket - Fatal编程技术网

C# 将数据从web应用程序获取到客户端计算机上特定文件夹中的XML文件中而无需输入的方法

C# 将数据从web应用程序获取到客户端计算机上特定文件夹中的XML文件中而无需输入的方法,c#,asp.net,wcf,websocket,C#,Asp.net,Wcf,Websocket,我们有一个执行某些事务的web应用程序。用户在也有其他应用程序的客户端PC上使用web应用程序。第二个应用程序使用与输入系统的数据非常相似的数据。目前用户在两个系统中都输入了它,我们的系统,然后是第二个系统 集成到第二个系统中的唯一方法是将XML文件放在客户端PC上的特定文件夹中。我希望能够生成该XML文件并将其保存在客户端计算机上,而无需他们单击或确认任何内容 我知道如果没有他们的输入,从浏览器下载到客户端PC是不可能的,但是如果我能在他们的PC上安装一些东西,肯定有一个简单的方法 到目前为止

我们有一个执行某些事务的web应用程序。用户在也有其他应用程序的客户端PC上使用web应用程序。第二个应用程序使用与输入系统的数据非常相似的数据。目前用户在两个系统中都输入了它,我们的系统,然后是第二个系统

集成到第二个系统中的唯一方法是将XML文件放在客户端PC上的特定文件夹中。我希望能够生成该XML文件并将其保存在客户端计算机上,而无需他们单击或确认任何内容

我知道如果没有他们的输入,从浏览器下载到客户端PC是不可能的,但是如果我能在他们的PC上安装一些东西,肯定有一个简单的方法

到目前为止,我的想法是:

1:让服务器生成并托管该文件,并显示下载对话框,以便用户可以下载该文件。

我不喜欢这样,因为用户需要在每次交易后确认下载,而且他们选择下载目录,这样就有可能将其保存到错误的位置

2:在服务器上创建一个WCF服务,该服务将提供事务信息,并从客户端计算机上的应用程序调用它。然后,客户端应用程序将生成文件

这件看起来好些,但还是不干净。首先,用户必须记住运行应用程序,并且需要用户名来获取相关信息,这需要为每个用户更新。用户轮班工作,因此如果有人进来,并且没有更新活动用户的用户名,那么错误的用户名将发送到web服务,并且不会返回任何数据

3:使用HTML5本地存储保存文件,并从PC上运行的windows服务访问该文件。

我对此进行了调查,但似乎不可行。在本地浏览器存储中创建文件不会为您提供磁盘上易于访问的文件

4:使用web套接字(如信号器)

这一个我才刚刚开始看,并没有一个完整的理解,所以任何意见是感谢。同样,需要使用用户名来确定要发送给客户端的数据

我希望听到任何意见或建议的方法,我已经解释了上述或任何其他可行的方式做到这一点


这似乎是一个很简单的任务,但我找不到一个简单的答案,也许第二点是正确的方向?感谢所有意见和建议

否。未经用户同意,您不得在客户端计算机中安装任何内容或在文件系统中放置文件。这将是一个可笑的巨大安全漏洞


让用户下载一个将文件放置在正确位置的安装程序,仅此而已。

创建自定义URL协议

您将在客户端计算机上安装一个.exe或.vbs文件(或您创建的任何文件),当自定义url协议接收到位置时,将调用该文件

例如:

 myproto://createfile?data=somedatahere
您可以在.exe文件中执行任何需要的操作,例如使用返回文件内容的web服务

您需要为windows创建一个可执行文件,为mac创建另一个可执行文件


一旦协议就位,您就可以做一些疯狂的事情,比如设置一个websocket,它监听一条特定的消息,触发自定义url协议,然后使用一个web服务返回xml文件的内容并将其写入本地文件系统的目录。哟…

带有签名证书的Java小程序可能是最好的选择。有了它,我可以在客户端计算机上生成允许小程序运行的文件

你的建议听起来像是一个巨大的安全风险。我强烈建议你想出另一种保存数据的方法。@durbnpoison我们将数据保存在一个安全的数据库中。这是一种与特定客户端PC上的应用程序集成的方法,我们可以在其中安装自己的应用程序。我们还可以使用证书和httpsCan来详细介绍安装程序?安装程序是一个可执行文件,它计划将文件放置在文件系统中,注册内容,等等。。。用户可以在任何地方下载文件,但安装程序知道东西需要放在哪里。我的意思是从浏览器。对于第2个,您需要客户端应用程序以完全信任的方式运行。windows服务是否可以以管理员身份运行?但是,我仍然需要传入当前用户的用户名。也许一个单独的应用程序可以允许用户这样做?