如何在Web服务中实现安全性

时间:2011-07-16 14:38:32

标签: c# web-services

我已经创建了一个工作正常的web服务,但现在我需要实现安全性,以便只有我的客户才能访问此服务

webservice在印度托管,客户在英国和西班牙,他们正在尝试访问网络服务网址。

1:现在我需要确保网络服务仅适用于这两个客户端,任何访问此网址的人都不应该获得加入吗?

2:我需要为这两个客户端设置不同的用户名和密码,这样当uk客户端尝试创建代理类时,他还应该输入用户名并通过密码来访问它。

希望我的问题很清楚,我的客户应该使用我的网络服务而不是其他人

2 个答案:

答案 0 :(得分:1)

您应该使用SSL来加密运行服务的站点。然后实现自定义SoapHeader。

public class SoapAuthenticationHeader : SoapHeader
{
    public string UserName { get; set; }
    public string Password { get; set; }
}

您还可以包含API密钥或其他一些身份验证方法。

public SoapAuthenticationHeader AuthHeader;

[SoapHeader("AuthHeader")]
[WebMethod()]
public ServiceResponse<bool> Update(int clientId)

有待进一步参考,http://msdn.microsoft.com/en-us/library/77hkfhh8.aspx

答案 1 :(得分:1)

查看here概述的WCF身份验证和授权功能。