小编Deb*_*Deb的帖子

X509Certificate2.Verify()始终返回false

面对一个非常奇怪的问题X509Certificate2.Verify()为有效证书返回false.也许有些人之前已经遇到过这种奇怪的情况,并且可以对它有所启发.

我正在使用openssl生成客户端证书以进行测试.我创建了一个根CA并根据该根CA生成客户端证书,并将根CA添加到其链中.

我将根CA和客户端证书加载到本地证书存储区,看起来没问题,但是当我从我的NUnit代码加载它来测试X509Certificate2.Verify()时总是返回false.

在此输入图像描述

以下是从商店加载Cert的代码:

        X509Store store = new X509Store(StoreName.My);
        string thumbprint = "60 d1 38 95 ee 3a 73 1e 7e 0d 70 68 0f 2d d0 69 1e 9a eb 72";
        store.Open(OpenFlags.ReadOnly);
        var mCert = store.Certificates.Find(
                                X509FindType.FindByThumbprint,
                                thumbprint,
                                true
                              ).OfType<System.Security.Cryptography.X509Certificates.X509Certificate>().FirstOrDefault();
        if(mCert != null)
        {
            var testClientCert = new X509Certificate2(mCert);
        }
Run Code Online (Sandbox Code Playgroud)

这是我刚刚生成的客户端证书:(可以从我的本地计算机正确访问CRL URL)

-----BEGIN CERTIFICATE-----
MIIC7jCCAlegAwIBAgIBATANBgkqhkiG9w0BAQUFADBtMR0wGwYDVQQKExRWaXRh
bEhlYWx0aCBTb2Z0d2FyZTElMCMGA1UECxMcVml0YWxIZWFsdGggU29mdHdhcmUg
Um9vdCBDQTElMCMGA1UEAxMcVml0YWxIZWFsdGggU29mdHdhcmUgUm9vdCBDQTAe
Fw0xNTAyMjcwODQ2MzNaFw0xNjAyMjcwODQ2MzNaMEUxHTAbBgNVBAoTFFZpdGFs
SGVhbHRoIFNvZnR3YXJlMREwDwYDVQQLEwhQbGF0Zm9ybTERMA8GA1UEAxMIVGVz
dFVzZXIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOkfyjX0PSnRYrBbCC8u
rw7IiFdAUj6frPKEmt0TLAR/4g+NazKdGjRRqxE9mNwX/2zGhIcucfGDVwPtOtiV
opicQEzGiSQkvAc+473MN5D6j3XtBYblALMeMyEYoh3LnHO4K+6kV6XE4BXV/2lV
mAVgXGkZzaayd40DLvg48vPlAgMBAAGjgcUwgcIwCQYDVR0TBAIwADARBglghkgB
hvhCAQEEBAMCB4AwCwYDVR0PBAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMCMDEG
CWCGSAGG+EIBDQQkFiJPcGVuU1NMIENlcnRpZmljYXRlIGZvciBTU0wgQ2xpZW50
ME0GA1UdHwRGMEQwQqBAoD6GPGh0dHA6Ly9wbGF0Zm9ybWRhc2hib2FyZC5ubC52
aXRhbGhlYWx0aC5sb2NhbC9wb3J0YWwvY3JsLmNybDANBgkqhkiG9w0BAQUFAAOB
gQBXYSmZaVu6vnyl94SO4qpNOutsUm4p7fQHehljhZ+aRrXE10rivWCt4g0k961E
PDsp4J0DR6uth6et42pBp8v2gFIGSQY/F7NhmOAsOJvM7z0oIBxMLcclIDTygbRp
KjZZpNjvf+YJasbidosiL4VSeRiCZ+HPzvKDb3wNeafoZA==
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

这是我从浏览器访问时下载的CRL文件:

-----BEGIN X509 CRL-----
MIIBMjCBnDANBgkqhkiG9w0BAQUFADBtMR0wGwYDVQQKExRWaXRhbEhlYWx0aCBT
b2Z0d2FyZTElMCMGA1UECxMcVml0YWxIZWFsdGggU29mdHdhcmUgUm9vdCBDQTEl
MCMGA1UEAxMcVml0YWxIZWFsdGggU29mdHdhcmUgUm9vdCBDQRcNMTQwODA3MTQz …
Run Code Online (Sandbox Code Playgroud)

c# client-certificates x509certificate2

9
推荐指数
1
解决办法
9222
查看次数

在DocumentDB中是否可以像在Sql Server中一样查询“ Where In”?

我有以下简单的Sql Where,其中我正在DocumentDB中尝试使用,但无法使其在Query Explorer中工作:

SELECT * FROM root.DocumentDbTest_AllFieldTypes f
    WHERE f.field1 NOT IN (
                            SELECT g.field1 FROM root.DocumentDbTest_AllFieldTypes g 
                            WHERE g.time = "09:12:34"
                          );
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息: 语法错误,“ SELECT”附近的语法不正确。

有人可以告诉我执行此IN查询的正确语法吗?

c# azure-cosmosdb

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

DocumentDb无法处理列名中的连字符( - )

我将以下XML保存到DocumentDB:

<DocumentDbTest_Countries> 
  <country>C25103657983</country> 
  <language>C25103657983</language> 
  <countryCode>383388823</countryCode>
  <version>2015-08-25T08:36:59:982.3552</version>
  <integrity>
     <hash-algorithm>sha1</hash-algorithm>
     <hash /> 
  </integrity>
  <context-info> 
     <created-by>unittestuser</created-by> 
     <created-on>2015/08/25 08:36:59</created-on> 
     <created-time-zone>UTC</created-time-zone> 
     <modified-by>unittestuser</modified-by>
     <modified-on>2015/08/25 08:36:59</modified-on> 
     <modified-time-zone>UTC</modified-time-zone>
  </context-info>
</DocumentDbTest_Countries>
Run Code Online (Sandbox Code Playgroud)

哪个可以保存到DocumentDB中,如下所示:

{
"DocumentDbTest_Countries": {
"integrity": {
   "hash-algorithm": "sha1",
   "hash": ""
  },
"context-info": {
  "created-by": "unittestuser",
  "created-on": "2015/08/25 08:36:59",
  "created-time-zone": "UTC",
  "modified-by": "unittestuser",
  "modified-on": "2015/08/25 08:36:59",
  "modified-time-zone": "UTC"
},
"country": "C25103657983",
"language": "C25103657983",
"countryCode": 383388823,
"version": "2015-08-25T08:36:59:982.3552"
},
"id": "f917945d-eaee-4eff-944d-dae366de7be1"
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,列名确实在DocumentDB中保存了连字符( - )(显然没有任何类型的错误/异常/警告)但是当我尝试进行查找时,它在查询资源管理器中失败了.似乎没有办法搜索带连字符的列名.这是真的?或者,我错过了什么?有人可以指点我某个关于这个限制的文件吗?

c# azure-cosmosdb

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