ASP.NET Web服务安全性

时间:2009-07-28 19:53:20

标签: asp.net web-services soap asmx

我过去曾构建过公共使用过的ASP.NET Web服务,或者使用过Windows身份验证。我现在需要构建一个使用SOAP 1.1协议的Web服务,并且需要使用来自调用者的用户名和密码进行保护。

对于一个或两个Web服务来说,WCP似乎setting up the infrastructure是过度的。还有其他建议吗?我也在考虑使用ASP.NET 4.0 Beta,如果有人在这个场景中进行过探索,那么了解你的意见会很有帮助。

提前感谢您的建议。

3 个答案:

答案 0 :(得分:6)

简单的方法是创建一个特殊的标头,其中包含每个调用的身份验证信息,并以这种方式验证/授权用户

以下是一些示例代码: http://aspalliance.com/805_Soap_Headers_Authentication_in_Web_Services

请注意,通过这种方式,您将发送明文用户名和密码,以便您可以使用ssl或使用某种摘要式身份验证

答案 1 :(得分:0)

有不同的方法可以做到这一点。一个可以启用对特定IP集的访问。如果IP与其中一个列表不匹配,那么您可以轻松拒绝方法级别的呼叫。

否则,您可以创建另一个方法,该方法将返回一个令牌,然后使所有相关方法期望返回该令牌以处理该请求。

答案 2 :(得分:0)

使用 SSL 。强制使用您的网络服务的每个人都使用https。

        //Check for Secure Channel: HTTPS
        if (!Context.Request.IsSecureConnection) 
            return "The HTTP Connection must use Secure Sockets (HTTPS)";