Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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# 如何在webservices中实现安全性_C#_Web Services - Fatal编程技术网

C# 如何在webservices中实现安全性

C# 如何在webservices中实现安全性,c#,web-services,C#,Web Services,我已经创建了一个Web服务,它工作正常,但现在我需要实现安全性,以便只有我的客户才能访问该服务 webservice在印度托管,客户端在英国和西班牙,他们正在尝试访问webservice url 1:现在我需要确保Web服务只对这两个客户端可用。任何访问此url的人都不应该被授予访问权限吗 2:我需要为这两个客户端设置不同的用户名和密码,这样当英国客户端尝试创建代理类时,他也应该输入用户名和密码来访问它 希望我的问题是清楚的,我的客户应该使用什么样的Web服务器,而不是其他人您应该使用SSL对运

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

webservice在印度托管,客户端在英国和西班牙,他们正在尝试访问webservice url

1:现在我需要确保Web服务只对这两个客户端可用。任何访问此url的人都不应该被授予访问权限吗

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


希望我的问题是清楚的,我的客户应该使用什么样的Web服务器,而不是其他人

您应该使用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)
公共SoapAuthenticationHeader AuthHeader;
[SoapHeader(“AuthHeader”)]
[WebMethod()]
公共服务响应更新(int clientId)

如需进一步参考,请查看概述的WCF身份验证和授权功能