1

如何保护 Web 服务并使任何平台都可以轻松使用。

设置:Asp.NET 2.0、Dot Net 2.0、c# 2.0、Visual Studio 2005。Web 服务器是 IIS 并使用 https (SSL)

  1. 我想避免安装 WSE 3.0 之类的东西。对于 Visual Studio 和 IIS 的未来版本,我更喜欢可以随身携带的纯 c# 方法。
  2. 每个人都应该能够访问 Web 服务 URL 和描述,并且无需身份验证即可查看 WSDL。
  3. 保护将有助于阻止人们向我们的 Web 服务方法发送垃圾。
  4. 易于实施:我不想为客户管理证书或安装任何东西。
  5. 客户端只发送用户名和密码。

这是否意味着 SOAP 标头身份验证是唯一的方法?我找到了这些链接,但不知道它们是否适用于非 .NET 客户端?
http://aspalliance.com/805http://www.codeproject.com/KB/webservices/SOAPHeaderAuthentication.aspx

我也看到了这篇文章,但不知道是否以及如何实现它(不是一个很好的例子)。

请建议或给我一个好的链接(请不要视频)。谢谢!

4

3 回答 3

2

您最好的选择是升级到 WCF,因为那里的内置选项要好得多。如果您被困在 2.0/SOAP 领域,那么自定义 SOAP 标头将适用于大多数平台——我之前已经成功地在 .NET、COM+ 和 PHP 中使用过它们。您可以使用典型的 ASP.NET 授权位(包括 sql 数据库)来支持用户/密码。也就是说,如果安全点是减少垃圾邮件并且您没有那么多“安全”的服务方法,那么您可能只想在您的方法中添加一个“UserKey”参数然后验证(或至少速率限制)反对。

于 2011-07-19T13:14:41.550 回答
1
  1. 您应该将解决方案升级到 WCF。如果可以,您可以轻松地为您的客户选择凭证类型。另请参阅保护 WCF 服务文章
  2. SOAP 标头适用于非 .NET 客户端,前提是它们可以构造请求所需的 xml。
  3. 使用本文获取 SOAP Header 使用的简单示例。
于 2011-07-19T13:14:48.197 回答
0

IIS 中的基本身份验证还不够吗?服务消费者很容易通过请求传递基本身份验证参数。

于 2011-07-19T13:12:36.307 回答