通过JavaScript调用C# Windows服务函数

3
我正在开发一个Windows服务,旨在作为Web应用程序和独立客户端程序之间的中介。简而言之:在提交Web应用程序表单之前,我希望通过我的客户端程序对其进行加密。通信介质必须是Windows服务。
我的问题是:如何通过JS调用我的服务中的C#函数?(此函数将帮助我在网站和独立应用程序之间传递数据)
以前,我成功地使用小程序作为媒介,但由于最近出现了许多安全问题,我已经放弃了这个想法。

你需要对表单进行加密,不仅仅使用https吗? - MikeSmithDev
实际上,我正在开发一个新的社交网络,它不会在服务器上以明文形式存储任何用户敏感数据。因此,我正在使用Bouncy Castle在客户端对所有内容进行加密和解密。但这或许并不是重点所在。 - Shahbaaz Sabharwal
不,那很有道理,也是我想知道的。 - MikeSmithDev
2个回答

1

它必须是Windows服务吗?

您可以编写一个WCF服务,将其托管在Windows服务中。 MSDN上有一篇文章介绍如何做到这一点(http://msdn.microsoft.com/en-us/library/ms733069(v=vs.110).aspx),网络上还有许多其他文章。

您不能直接调用在Windows服务中定义的函数,必须使用某种端点将其暴露给外部世界,例如WCF的方式。


1
同意。谢谢,但是即使使用WCF,我如何能够从JavaScript调用函数? - Shahbaaz Sabharwal

1
你可以在Windows服务中自行托管基于REST的服务。例如,使用NancyFx框架http://nancyfx.org/。然后,您可以使用localhost作为终端点进行ajax调用,这意味着必须在访问它的任何客户端上安装和运行该服务。
另外一个问题是,为什么要在客户端进行自己的加密?您可以使用SSL加密与服务器的通信,然后在服务器端执行所需的任何加密。这是一些被强制实施的设计吗?

感谢提供另一种方案,Bigtoe。是的,我正在遵循给定的架构。我想把你引导到我在问题中的评论! - Shahbaaz Sabharwal
请注意,当您从源站点调用不同的站点时,可能会遇到跨站点调用问题。您需要实现某种形式的CORS处理来克服这个问题。可以参考http://enable-cors.org/。 - Bigtoe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接