Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.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服务安全性_C#_Web Services_Security - Fatal编程技术网

C# Web服务安全性

C# Web服务安全性,c#,web-services,security,C#,Web Services,Security,我正在开发一个项目,它包含一个Web服务和一个客户端应用程序。这是一个相当简单的场景。Web服务连接到数据库服务器,客户机使用Web服务器获取从数据库检索到的信息 问题是: 1.客户端应用程序只能在以前的身份验证后显示数据; 2.Web服务和客户端之间传输的所有数据必须保密; 3.数据完整性不应受到损害 我想知道实现这些要求的最佳方式是什么。 我想到的第一件事是向服务器发送一个包含客户端证书的数字签名,将其存储在服务器中,并用作身份验证的比较。但是我对webservice安全性做了一些调查,我不

我正在开发一个项目,它包含一个Web服务和一个客户端应用程序。这是一个相当简单的场景。Web服务连接到数据库服务器,客户机使用Web服务器获取从数据库检索到的信息

问题是: 1.客户端应用程序只能在以前的身份验证后显示数据; 2.Web服务和客户端之间传输的所有数据必须保密; 3.数据完整性不应受到损害

我想知道实现这些要求的最佳方式是什么。 我想到的第一件事是向服务器发送一个包含客户端证书的数字签名,将其存储在服务器中,并用作身份验证的比较。但是我对webservice安全性做了一些调查,我不再确定这是最好的选择

有人能给我一个意见吗


TIA客户机和web服务之间的所有通信都应加密。 比你处理加密密钥的方式更强大

microsoft的wcf具有使用证书和其他选项的消息身份验证

您可以使用某种签名算法(如md5)对发送给客户端(消息内部)的“数据”进行签名,但攻击者也可以这样做,因此更强大的选择是使用公钥-私钥对带有签名的数据进行加密。。。但是你现在需要保护私钥


您的数据有多重要?

您应该使用已知的良好方案来实现这种安全连接:SSL。如果您使用的技术(编程语言、库等)具有已知的SSL模式,则使用该模式

如果会话是安全的,则不需要任何额外的数据加密。按照今天的标准,SSL的最新版本非常强大

对于C#应用程序,我将使用WCF和SSL

  • (尽管我会确保我也检查了MSDN,以确保您最终使用的方法是最新的)

您的客户机需要知道他们可以信任服务器,因此您需要服务器证书。如果您同意客户端只需要密码就可以访问该数据,那么您不需要客户端证书。

既然您提到了表单身份验证,我认为您假定客户端是一个网页。她提到了C#,所以我认为它是一个桌面应用程序。我知道-谢谢,我注意到在我发布了答案并现在更改了它之后。。太累了。。。需要睡眠。这是一个桌面客户端应用程序。数据本身并不重要,但这些是项目的要求,我必须满足。不管怎样,我最终使用了数字签名和证书,再加上三重签名。