2014-01-21 50 views
0

我建立一个Web服务,并有一些麻烦女巫选项,我应该选择。为此,我希望有人能指出我的方向。我发现了很多文章,但是他们都没有或多或少地有我想要的选项。安全web服务的最佳实践

我想要的web服务做: 客户应该从ASMX文件导出的WSDL。在该服务中,有一个未经身份验证的webmethod,称为“验证(字符串用户名,字符串密码)”,它返回一个自定义的AuthenticationSoapHeader。 AuthenticationSoapHeader与Web应用程序中使用的System.Web.Security.FormsAuthenticationTicket类完全相同。

http://www.codeproject.com/Articles/4398/Authentication-for-Web-Services-using-SOAP-headers

http://www.codeproject.com/Articles/27365/Authenticate-NET-Web-Service-with-Custom-SOAP-Head

我想使用的物品上面来实现这一点,改变为将包括日期时间戳到期的票据进行加密票的用户名密码组合。我的问题。

  • 这会被认为是最佳做法?如果没有,我有更好的选择。
  • 是否需要使用WSE3“Microsoft Webservice Enhancement”?
  • 如果你还有一些新的web服务,WCF是一个更好的选择吗?

soap请求通过HTTPS SSL,不需要在客户端进一步加密。先谢谢你。

最好的问候,

丹尼

回答

0

我不能回答所有这些问题,但我可以回答几个:IMO WCF是所有你需要为这个项目设定一个工具,根据您的描述。 WCF有许多不同的风格(http,TCP等),每种风格都有多种不同的选项来实现安全性。

WCF对用户名/密码身份验证选项,或者您可以构建一个自定义的方法,或者你可以构造一个登录()函数,它接受一个用户ID和密码作为参数,返回一个布尔值。还有一些选项可让您在主程序收到请求之前进行身份验证。这就是内置的用户ID /密码认证。

如果您在主机上实施SSL,假设您使用的是以http为中心的绑定,则客户端不需要加密任何内容,因为WCF软件会处理此问题,一旦您拥有主机和客户端软件配置正确。实际上,您的WCF客户端应用程序将像浏览器一样运行,将所有令人讨厌的证书内容交付给客户。

WCF也可以让你一)运行Web服务作为一个独立的Windows服务(称为“自托管”),或b)允许您配置IIS背后的Web服务,它具有一定的优势。如果需要,WCF还会为您的客户提供WSDL。

大约有WCF一些其他的好东西;如果在星期一上午8点,10,000个并发用户点击了您的Web服务,WCF会自动排队它无法处理的请求,并按顺序处理它们。我用这样的数字抨击了我们的测试Web服务,并且该程序从未中断,处理> 150次登录和文件上传/秒。 WCF也适用于Java,iOS和Android。