小编fan*_*bob的帖子

客户端身份验证方案"匿名"禁止HTTP请求.远程服务器返回错误:(403)禁止

我正在尝试创建一个安全的Web服务.

这是合同和服务实施

[ServiceContract()]
public interface ICalculatorService
{
    [OperationContract()]
    int Add(int x, int y);
}

[ServiceBehavior(IncludeExceptionDetailInFaults=true)]
public class CalculatorService : ICalculatorService
{
    public int Add(int x, int y)
    {
        return x + y;
    }
}
Run Code Online (Sandbox Code Playgroud)

这里我有服务代码

var b = new WSHttpBinding(SecurityMode.Transport);
b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
b.Security.Message.ClientCredentialType = MessageCredentialType.None;

Type contractType = typeof(ICalculatorService);
Type implementedContract = typeof(CalculatorService);
Uri baseAddress = new Uri("https://localhost:8006/CalculatorService");
ServiceHost sh = new ServiceHost(implementedContract);

sh.AddServiceEndpoint(contractType, b, baseAddress);

//ServiceMetadataBehavior sm = new ServiceMetadataBehavior();
//sm.HttpsGetEnabled = true;
//sm.HttpsGetUrl = new Uri("https://localhost:8006/CalculatorServiceMex");
//sh.Description.Behaviors.Add(sm); …
Run Code Online (Sandbox Code Playgroud)

c# iis ssl wcf

11
推荐指数
2
解决办法
6万
查看次数

HttpListener 服务器返回错误:(503) 服务不可用

我正在尝试创建一个使用 x509 证书进行客户端/服务器身份验证的 http 侦听器。

我的服务器代码如下。

_listener = new HttpListener();
_listener.Prefixes.Add("https://localhost:8006/");
_listener.Start();
HttpListenerContext context = _listener.GetContext();
Run Code Online (Sandbox Code Playgroud)

我的客户端代码如下

string url = "https://localhost:8006/";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
var store = new X509Store(StoreName.TrustedPeople, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var cert = store.Certificates.Find(X509FindType.FindBySubjectName, "localhost", true);
request.ClientCertificates.Add((X509Certificate)cert[0]);
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, policyErrs) =>
   {
       return policyErrs == System.Net.Security.SslPolicyErrors.None;
   };
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Run Code Online (Sandbox Code Playgroud)

我相信我已经正确配置了一切。没有证书策略错误,我已将 ssl 证书绑定到端口,并且不需要提升权限来运行侦听器。

在此输入图像描述

如果我在代码中或通过 Chrome 发出网络请求,则会收到此错误。我在这里做错了什么?

在此输入图像描述

.net c# ssl x509certificate

3
推荐指数
1
解决办法
4258
查看次数

标签 统计

c# ×2

ssl ×2

.net ×1

iis ×1

wcf ×1

x509certificate ×1