Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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# 创建连接到远程数据库并使用公钥加密的服务_C#_Database_Wcf_Soap_Public Key - Fatal编程技术网

C# 创建连接到远程数据库并使用公钥加密的服务

C# 创建连接到远程数据库并使用公钥加密的服务,c#,database,wcf,soap,public-key,C#,Database,Wcf,Soap,Public Key,我已经搜索了一整天,阅读了许多教程,但我仍然感到困惑。我所从事的项目具有客户指定的以下要求(客户-不要与客户应用程序混淆): 连接到远程服务器并验证连接是否成功 通过SOAP连接到所述服务器上的Web服务 使用公钥加密对服务进行身份验证 认证成功后,通过Web服务将产品和类别列表推送到远程服务器上的MSSQL数据库 客户端是用C#编写的Winforms应用程序。到目前为止,我已经创建了一个WCF服务应用程序,为产品和类别提供了单独的服务,但我无法理解其余的内容 有人能给我指点一个或多个教程的方向

我已经搜索了一整天,阅读了许多教程,但我仍然感到困惑。我所从事的项目具有客户指定的以下要求(客户-不要与客户应用程序混淆):

  • 连接到远程服务器并验证连接是否成功
  • 通过SOAP连接到所述服务器上的Web服务
  • 使用公钥加密对服务进行身份验证
  • 认证成功后,通过Web服务将产品和类别列表推送到远程服务器上的MSSQL数据库
  • 客户端是用C#编写的Winforms应用程序。到目前为止,我已经创建了一个WCF服务应用程序,为产品和类别提供了单独的服务,但我无法理解其余的内容

    有人能给我指点一个或多个教程的方向吗

    非常感谢


    乔:嗯。。您需要使用某种数据访问层与数据库进行接口。你的选择是你自己的。。或者使用预先制作的解决方案,如Linq2SQL、实体框架、nHibernate、亚音速等


    关于安全性,如果使用Web服务传输数据是一个问题,那么您可以简单地使用HTTPS。

    好。。您需要使用某种数据访问层与数据库进行接口。你的选择是你自己的。。或者使用预先制作的解决方案,如Linq2SQL、实体框架、nHibernate、亚音速等


    关于安全性,如果使用Web服务传输数据是一个问题,您可以简单地使用HTTPS。

    我已经制定了以下解决方案:

  • 用户输入用户名、密码和公钥
  • 程序连接到远程WCF服务,该服务根据服务器上的数据库检查提供的用户名和密码,以确保它们是正确的-用户名和密码通过自定义MessageContract发送
  • 在成功进行身份验证后,服务器将响应发送回客户端,让它知道如何继续
  • 用户选择要发送到远程服务器的产品和类别
  • 选定的信息由客户端使用用户的公钥加密,并在服务器上使用相应的私钥解密
  • 解密后的信息存储在数据库中

  • 我走对了吗?

    我已经想出了以下解决方案:

  • 用户输入用户名、密码和公钥
  • 程序连接到远程WCF服务,该服务根据服务器上的数据库检查提供的用户名和密码,以确保它们是正确的-用户名和密码通过自定义MessageContract发送
  • 在成功进行身份验证后,服务器将响应发送回客户端,让它知道如何继续
  • 用户选择要发送到远程服务器的产品和类别
  • 选定的信息由客户端使用用户的公钥加密,并在服务器上使用相应的私钥解密
  • 解密后的信息存储在数据库中

  • 我说的对吗?

    你的问题有点复杂,希望得到一个全面的答案。您是否关心整个问题的任何特定部分或教程的某些特定部分你需要帮助理解吗?我想我真正需要的信息是公钥加密如何与WCF一起工作,以及服务如何将信息推送到数据库。你的问题有点复杂,希望得到一个全面的答案。您是否关心整个问题的任何特定部分或教程的某些特定部分您需要帮助理解吗?我想我真正需要的信息是公钥加密如何与WCF一起工作,以及服务如何将信息推送到数据库。数据将根据客户的要求通过HTTPS传输。使用公钥的原因是为了识别用户。当然。。。因此,您将在客户端使用客户端的私钥对数据进行签名,然后在收到签名消息后,在服务器端使用客户端的公钥验证此签名。据我所知,这些都在.net提供的加密库的范围内。这应该让你开始了。谢谢ac2u。实际上,我现在正在开发一个不涉及证书的实现,因为我无法证明为每个客户购买证书的成本是合理的。(他们甚至需要购买吗?或者我把他们和SSL混淆了吗?)我会查看你提供的链接。再次感谢!数据将根据客户要求通过HTTPS传输。使用公钥的原因是为了识别用户。当然。。。因此,您将在客户端使用客户端的私钥对数据进行签名,然后在收到签名消息后,在服务器端使用客户端的公钥验证此签名。据我所知,这些都在.net提供的加密库的范围内。这应该让你开始了。谢谢ac2u。实际上,我现在正在开发一个不涉及证书的实现,因为我无法证明为每个客户购买证书的成本是合理的。(他们甚至需要购买吗?或者我把他们和SSL混淆了吗?)我会查看你提供的链接。再次感谢!服务器上不会有用户私钥。如果您希望确保沿线路传递的消息不被篡改。。这就是使用私钥在客户端进行签名和使用公钥在服务器上进行验证的关键所在。我在对上一个答案的评论中提供的链接应该可以让您开始了解这一点。您不会在服务器上拥有用户的私钥。如果您希望确保沿线路传递的消息不被篡改。。这就是使用私钥在客户端进行签名和使用公钥在服务器上进行验证的关键所在。我在评论中提供的链接到我以前的a