小编Joh*_*ohn的帖子

C# .NET - 固定证书颁发机构 - 我做对了吗?

我的软件使用 HTTPS 连接连接到 Dropbox 以检索一些敏感数据。

我想固定证书颁发机构以防止中间人攻击。

到目前为止,我有以下代码:

static bool VerifyServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
        try
        {
            var currentCaPublicKey = chain.ChainElements.Cast<X509ChainElement>().Last().Certificate.GetPublicKeyString();

            var caPublicKeys = new List<string>(){"00ad0e15cee443805cb187f3b760f97112a5aedc269488aaf4cef520392858600cf880daa9159532613cb5b128848a8adc9f0a0c83177a8f90ac8ae779535c31842af60f98323676ccdedd3ca8a2ef6afb21f25261df9f20d71fe2b1d9fe1864d2125b5ff9581835bc47cda136f96b7fd4b0383ec11bc38c33d9d82f18fe280fb3a783d6c36e44c061359616fe599c8b766dd7f1a24b0d2bff0b72da9e60d08e9035c678558720a1cfe56d0ac8497c3198336c22e987d0325aa2ba138211ed39179d993a72a1e6faa4d9d5173175ae857d22ae3f014686f62879c8b1dae45717c47e1c0eb0b492a656b3bdb297edaaa7f0b7c5a83f9516d0ffa196eb085f18774f"};

            return caPublicKeys.Any(s => currentCaPublicKey.Equals(s));
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
            return false;
        }
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我不知道我是否在检查正确的东西。一些加密专家的任何建议将不胜感激。

.net c# https ca pki

6
推荐指数
1
解决办法
4768
查看次数

自动编译两个版本的C#程序

我必须为两个不同的公司制作相同的程序(不同的标识,不同的名称).我希望在发布时自动完成此操作.

我想使用资源文件或附属程序集,但我不知道如何继续.

您认为哪种方式最好?

谢谢.

编辑:

  • 差异只是一个图像和一个字符串.
  • 我希望只需点击一下即可生成所有内容.
  • 我们将来可能会有更多的客户.
  • 我还必须补充一点,我使用SmartAssembly将所有依赖项合并到一个exe文件中.

c# compilation

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

C#将相同的变量传递给两个"out"参数

"user1"和"user2"在下面的示例中指向相同的引用是否正常?

我知道我将相同的变量'notUsed'传递给两个参数,但它还没有实例化,因此它不包含对任何内容的引用.看到user1和user2相互链接,我感到非常震惊.

static void CheckPasswords(out string user1, out string user2)
{
    user1 = "A";
    user2 = "B";

    Console.WriteLine("user1: " + user1);
    Console.WriteLine("user2: " + user2);
}

public static void Main()
{
    string notUsed;
    CheckPasswords(out notUsed, out notUsed);
}
Run Code Online (Sandbox Code Playgroud)

控制台显示:

user1: B
user2: B
Run Code Online (Sandbox Code Playgroud)

c#

4
推荐指数
1
解决办法
680
查看次数

标签 统计

c# ×3

.net ×1

ca ×1

compilation ×1

https ×1

pki ×1