相关疑难解决方法(0)

.NET程序未获得经过验证的服务器证书

我有一个相当简单的LDAP客户端,当连接到389端口(LDAP)时可以正常工作,但是当我尝试连接到636端口(LDAPS)时失败,并显示“ LDAP服务器不可用”。

namespace MyNS
{
  class ProgramLdap
  {
    private static LdapConnection CreateConnection(String baseDn, string usuario, string password)
    {
      LdapConnection ldapConnection = new LdapConnection(
        new LdapDirectoryIdentifier("myserver.example", 636, true, false));
      ldapConnection.SessionOptions.SecureSocketLayer = true;
      ldapConnection.SessionOptions.ProtocolVersion = 3;
      // [CODE MODIFICATION HERE]
      ldapConnection.Credential = new NetworkCredential(usuario, password);
      ldapConnection.AuthType = AuthType.Basic;
      ldapConnection.Timeout = new TimeSpan(1, 0, 0);
      return ldapConnection;
    }

    static void Main(string[] args)
    {

      LdapConnection ldapConnection = CreateConnection("", "myLdapUser", "noneOfYourBusiness");
      SearchRequest searchRequest = new SearchRequest(
        "ou=usuarios,dc=Dexter,dc=local",
         String.Format("(&(objectclass=person)(cn={0}))", user),
         SearchScope.Subtree,
         new string[0]);
       SearchResponse searchResponse = …
Run Code Online (Sandbox Code Playgroud)

.net c# ssl ldap

7
推荐指数
1
解决办法
229
查看次数

X509Certificate2.Verify()方法始终为有效证书返回false

我正在使用智能卡进行身份验证.

SecurityTokenService(身份验证服务)仅托管在我的计算机上.智能卡具有有效证书,其根证书也安装在我的计算机上的本地计算机存储中.

当我使用X509Certificate2.Verify方法验证我的服务中的证书时,它总是返回false.

有人可以帮我理解为什么X509Certificate2.Verify()方法总是返回false吗?

注意:我使用X509Chain并检查了所有标志(X509VerificationFlags.AllFlags).当我建章宁,它会返回trueChainStatus作为RevocationStatusUnknown.


编辑1:

我观察到,如果我在Windows窗体应用程序中编写此代码,该X509Certificate2.Verify() 方法将返回true.它false仅在服务端代码中返回.为什么这样?奇怪但真实!

c# x509certificate2

5
推荐指数
1
解决办法
4597
查看次数

标签 统计

c# ×2

.net ×1

ldap ×1

ssl ×1

x509certificate2 ×1