我一直试图使用these steps登录到必发帐户。这可以正常工作,并且我返回了会话密钥,但是,如果我尝试重复在另一个项目中获取会话密钥的步骤,则会收到“ CERT_AUTH_REQUIRED”错误,这表示我发送的客户端证书有问题请求。

更奇怪的是,如果我创建另一个引用了正在工作的Betfair项目的项目,并获得这个新项目以仅运行Betfair项目中的Program.Main方法,我会再次收到“ CERT_AUTH_REQUIRED”消息吗?

当Betfair应用程序是该解决方案的启动项目时,它可以工作,但是如果我将启动betfair控制台应用程序的第二个项目设置为启动项目,则它不会返回成功响应(尽管代码可以正常运行并遍历所有同样的步骤,只是网络响应失败)。

有谁知道为什么会这样吗?

最佳答案

我设法使该代码适用于非交互式登录。我确实做了这个改变。听起来有点熟悉,因为我记得有这个错误。

    private WebRequestHandler getWebRequestHandlerWithCert(string certFilename)
    {
        var cert = new X509Certificate2(certFilename, "", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
        var clientHandler = new WebRequestHandler();
        clientHandler.ClientCertificates.Add(cert);
        return clientHandler;
    }

10-05 21:18