SQL Server中基于证书的认证
目前我正在为当前的项目苦苦挣扎.我的任务是将基于用户名/密码的身份验证/Connection 替换为SQL Server(2014),然后用基于A 证书的身份验证/Connection/Connection One替换它.所以我的问题可能是: SQL Server是否可以? 这个想法是不再包含用户名/密码组合来连接服务器的数据库实例.然后将用证书替换,理想情况下将拥有所有登录凭据(加密).因此,用更简单的话来说,每台将需要使用该系统的PC都需要发出证书以连接到数据库. 如果可能的话,这是全部或一台计算机的单个证书吗? 希望在这里获得一些好/坏的意见.谢谢你 解决方案 我们在谈论哪个证书是从Active Directory网络或使用其SSL CERT的网页中的根证书授权来验证SSQL Server中的一个证书?还是仅出于此目的而生成的证书?哪种语言/程序正在尝试使用证书授权.我假设C#,但我只想确保. 其他解决方案 SQL Server的等效选项证书
2 2024-04-26
编程技术问答社区
D-RSA参数的变化取决于您访问证书私钥的方式
我希望有人可以向我解释我犯了一个错误的地方.我一直认为,当我用私钥导出证书并再次导入证书时,私钥是稳定且不会改变的.特别是在计算机上. 现在我被证明是错误的,我不明白. 给定证书z.包含一个私钥PK. 我将此证书导入到计算机C1并计算机C2上. 我在两个上都获得了私钥的参数. Result on C1: Exponent : {1, 0, 1} Modulus : {148, 19, 118, 153...} P : {246, 42, 172, 195...} Q : {153, 253, 180, 23...} DP : {161, 179, 194, 172...} DQ : {63, 22, 42, 14...} InverseQ : {170, 228, 238, 93...} D : {60, 36, 199, 168...} Result on C2: Exponent : {1,
6 2024-04-26
编程技术问答社区
防止文件被编辑
防止用户编辑的文本文件(例如XML)的最聪明方法是什么? 我需要确保无法简单地编辑桌面应用程序的用户名和桌面应用程序的特权. 也许我可以生成文件证书,桌面应用程序检查了一下? 我在Winforms应用中使用C#. 解决方案 您可以使用文件系统权限来防止编辑. 您可以使用加密使编辑变得困难 您可以获得文件的哈希值来检测编辑. 我认为对文件进行加密,然后解密其最简单.尽管用户可能仍然能够阅读文件的内容,如果它们足够聪明.例如从内存中读取普通文本 其他解决方案 最简单的方法可能是使用用户名和密码身份验证的数据库. 最聪明的是对其进行加密,以使数据无法使用. 但是,如果用户真正的希望访问其计算机上的文件,则他们将将获取它.您可以做到这一点,以便他们无法阅读任何有用的内容或进行有用的编辑,但是如果他们愿意,他们将能够编辑文件. 其他解决方案 由于您的目的是将用户的特权直接存储在XML文件中,因此您需要一定的安全性,而不仅仅是阻止用
0 2024-04-25
编程技术问答社区
带证书的webHttpBinding
我正在尝试确保自托管服务. 调用服务返回以下内容: 基础连接已关闭:接收到一个意外的错误. 服务端点看起来像 我已经这样做以打开访问: netsh http add urlacl "url=https://+:8010/" user=BUILTIN\Users 我已经打开了服务器中的WCF跟踪,但在日志中没有获取信息,因此这是客户端连接问题. 我添加了服务行为.
6 2024-04-25
编程技术问答社区
如何在验证过程中用本地CRL文件检查客户证书的撤销情况(C#)。
我正在尝试使用HttpClientHandler.ServerCertificateCustomValidationCallback验证客户端证书.我已经用ChainPolicy参数构建了我的x509chain 我在本地我的crl(.pem)文件,我想将其添加到吊销过程中. 我正在考虑做类似 crl验证,用分发点OID导入我的X509Certificate and X509Extension,但我很难理解它. 这是我的回调代码的一部分 private static Func ServerCertificateCustomValidationCallback() { return (sender, cert, chain, sslPolicyErrors) => { X509Certi
6 2024-04-25
编程技术问答社区
从证书中获取 Sha256 公钥
当前,正在处理客户端服务器应用程序(CHAT)为服务器和客户端实施安全性,很少有客户写在Java Smack库中,他们使用的是Java的TLS固定,需要SHA2 HASH [服务器是使用C#实现的,我在服务器端具有证书,如何从证书中获得以下格式的SHA2公钥,以下是我的代码. cer =new X509Certificate2(ConfigurationManager.AppSettings["CertificateName"],"123456"); string hellow= cer.GetCertHashString(); //it will return sha1 hash 我需要的是以下格式和SHA2-256键 SHA2-256键 83:F9:17:1E:06:A3:13:13:11:88:89:F7:D7:93:93:02:BD:1B:1B:7A:20:42:42:EE:0C:0C:02:02:9A :bf:8d:d0:6f:fa:6c:d9:d3
8 2024-04-25
编程技术问答社区
如何从VS2008项目中为ie部署一个ActiveX控件?
作为在IE中托管的ActiveX控件中,在VS2008(Windows表单和C#)中部署项目的步骤是什么?我有一个我想在用户可以导航到的网页上托管的文件上传器项目,单击"信任此活动X控件",然后在浏览器的页面上运行应用程序,就像Java应用程序一样. . 要清楚,我不是在寻找ClickOnce(这是一个安装程序),我不希望用户修改其.NET安全性或添加一个受信任的站点(因此,将.dll文件放入对象标签不起作用).我需要一些数字签名,一些证书吗?我发现了这一点的引用,但没有逐步指南(就像我为java获得的一样). 有什么建议吗?这似乎是该项目中最简单的部分,但事实证明它是最困难的,我无法取得任何进展. 谢谢 sam 解决方案 ,可悲的是,.NET" ActiveX Controts"不像COM ActiveX控件(VB6),即使您使.NET控件Com-Com-Visible也无法使用操作系统相同.您要做的是: 1)创建您的.NET DLL文件 2)创建一个
6 2024-04-25
编程技术问答社区
授予用户对私钥的许可
安装我的WCF服务我还使用私钥安装证书. 由于我将以不同的用户运行服务,因此该用户需要访问私钥.我广泛阅读了其他stackoverflow问题,他们都建议需要调整文件系统中的私钥文件的权限. 我这样做, private static void AddUserPermissions(X509Certificate2 certificate, NTAccount user, StoreLocation storeLocation) { RSACryptoServiceProvider rsaProvider = (RSACryptoServiceProvider)certificate.PrivateKey; // Find file string keyPath = FindKeyLocation(rsaProvider.CspKeyContainerInfo.UniqueKe
10 2024-04-24
编程技术问答社区
无法创建SSL/TLS安全频道以使用某些计算机使用客户端证书来连接
我有一些在大多数机器上都起作用的代码,但在某些机器上失败了. 为了连接到第三方API,我的C#.NET 4.6.1程序需要作为验证的一部分发送客户端证书以及请求.发送给API并从API接收的大多数代码都是由他们提供的WSDL生成的,我只需要实施它. 实现分为两半,第一个是在缺少证书的情况下安装该证书,该证书是在程序启动上运行的. private static void InstallCertificate(string certPath) { if(string.IsNullOrEmpty(certPath) || !File.Exists(certPath)) { return; } string certPass = "MyPassword"; try { // Create a collection object and populate it using the PFX file
10 2024-04-24
编程技术问答社区
证书标识如何在OPC基金会.NET SDK中起作用
我需要在OPC客户端中使用自定义证书.我用OPC UA客户端SDK在.NET中制作了这个客户端. 目前,我可以使用此代码在程序中制作证书: // Get local interface ip addresses and DNS name List localIps = GetLocalIpAddressAndDns(); UInt16 keySize = 2048; //must be multiples of 1024 DateTime startTime = DateTime.Now; string certPassword = "123"; UInt16 lifeTime = 24; UInt16 hashSize = 2048; //Make ApplicationCertificate from xml settings config.SecurityConfiguration.ApplicationCertificate = ne
0 2024-04-24
编程技术问答社区
Azure, ASP.NET Core 2.0, 使用客户端证书用HttpClient调用Post,结果是 "客户端证书凭证未被识别"
我正在尝试从ASP.NET Core(2.0.2)Web API(在控制器内)调用第三方基于HTTP的API. 在非启动环境(Windows 7框)中运行时,它会成功. 在Azure中运行的应用程序中,它会失败,并带有"未识别客户端证书凭据"的错误. 环境之间的代码和证书是相同的. 两者都在IIS中运行. 我将代码放下来,以隔离我的问题,如下所示.出于明显的原因,我在此处更改了密码和URL详细信息. [HttpGet] public async Task Get() { string response = null; using (HttpClientHandler handler = new HttpClientHandler()) { handler.ClientCertificateOptions = ClientCertificateOption.Manual; handle
0 2024-04-24
编程技术问答社区
如何从VS2008项目中为ie部署一个ActiveX控件?
作为在IE中托管的ActiveX控件中,在VS2008(Windows表单和C#)中部署项目的步骤是什么?我有一个我想在用户可以导航到的网页上托管的文件上传器项目,单击"信任此活动X控件",然后在浏览器的页面上运行应用程序,就像Java应用程序一样. . 要清楚,我不是在寻找ClickOnce(这是一个安装程序),我不希望用户修改其.NET安全性或添加一个受信任的站点(因此,将.dll文件放入对象标签不起作用).我需要一些数字签名,一些证书吗?我发现了这一点的引用,但没有逐步指南(就像我为java获得的一样). 有什么建议吗?这似乎是该项目中最简单的部分,但事实证明它是最困难的,我无法取得任何进展. 谢谢 sam 解决方案 ,可悲的是,.NET" ActiveX Controts"不像COM ActiveX控件(VB6),即使您使.NET控件Com-Com-Visible也无法使用操作系统相同.您要做的是: 1)创建您的.NET DLL文件 2)创建一个
10 2024-04-24
编程技术问答社区
对网络服务的访问控制
这就是我想要实现的: 我的ASP.NET Web服务托管在名为//服务的服务器上.我想通过服务器和应用程序控制对Web服务的访问.我的意思是,如果我有两个ASP.NET Web应用程序(APP1和APP2)托管在名为//Web1 的服务器上,而我只想//web1/app1 能够调用Web服务.我知道我可以授予对//web1 的IP地址的访问权限强>访问Web服务. 我正在考虑使用SSL证书,因为我不希望Web应用程序处理登录/密码.在//服务上,我将授予对//web1 的IP的访问权限,并将客户证书从//web1 映射到Windows帐户这将仅允许//Web1 的应用程序访问.但是,如何仅控制访问//web1/app1 ? 解决方案 您可以使用标准凭证将在每个请求的授权标题中传递.每个Web服务客户端(即//Web1/App1)都应具有自己的凭据,因此,如果//Web1/App2尝试在不提供确认凭据的情况下连接到Web服务,则将被拒绝访问. 我建议使用SSL对所
4 2024-04-24
编程技术问答社区
对网络服务的访问控制
这就是我想要实现的: 我的ASP.NET Web服务托管在名为//服务的服务器上.我想通过服务器和应用程序控制对Web服务的访问.我的意思是,如果我有两个ASP.NET Web应用程序(APP1和APP2)托管在名为//Web1 的服务器上,而我只想//web1/app1 能够调用Web服务.我知道我可以授予对//web1 的IP地址的访问权限强>访问Web服务. 我正在考虑使用SSL证书,因为我不希望Web应用程序处理登录/密码.在//服务上,我将授予对//web1 的IP的访问权限,并将客户证书从//web1 映射到Windows帐户这将仅允许//Web1 的应用程序访问.但是,如何仅控制访问//web1/app1 ? 解决方案 您可以使用标准凭证将在每个请求的授权标题中传递.每个Web服务客户端(即//Web1/App1)都应具有自己的凭据,因此,如果//Web1/App2尝试在不提供确认凭据的情况下连接到Web服务,则将被拒绝访问. 我建议使用SSL对所
2 2024-04-23
编程技术问答社区
相当于C#的C代码来安装证书
我找到了以下代码将证书安装到本地机器受信任的发布者中.但是代码在C#中我希望在C中进行.如何将其转换为C? private static void InstallCertificate(string cerFileName) { X509Certificate2 certificate = new X509Certificate2(cerFileName); X509Store store = new X509Store(StoreName.TrustedPublisher,StoreLocation.LocalMachine); store.Open(OpenFlags.ReadWrite); store.Add(certificate); store.Close(); } 任何可用的Windows API? 解决方案 尝试查看libpkix lib libpkix库的目的是提供广泛有用的c 用于建造和验证X.509证书的链的库, 符合最新
4 2024-04-23
编程技术问答社区
使用itext7从pdf中的数字签名中提取电子邮件地址
使用DSC令牌证书签署了PDF. Adobe Reader将用户的电子邮件地址提供给谁已签名.我如何使用Itext7 C#? 从数字签名中提取电子邮件地址 我尝试在PDFPKCS7类中提取数据.但是它不包含电子邮件地址. 使用itextsharp, PdfReader reader = new PdfReader(path); AcroFields fields = reader.AcroFields; List names = fields.GetSignatureNames(); foreach (string name in names) { VerifySignature(fields, name); } 验证签名方法给出证书详细信息 virtual public PdfPKCS7 VerifySignature(AcroFields fields, String name) { Console.WriteLine("S
6 2024-04-23
编程技术问答社区
临时停用证书验证
我需要使用Web服务,但是它具有证书,我需要禁用其身份验证. 服务器端可以是一个虚拟服务器,我们正在使用它来"模拟"结果,也可以是使用安全的SOAP标头 的真实的第三侧服务器 调用虚拟服务器时,我需要能够在服务器中禁用证书验证,但是在调用真实服务器(不是我们的)时启用它 我在一些帖子中看到禁用它的方法是这样做: ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; 效果完美. 问题是,一旦执行了这一行代码,我似乎就无法"反向"它 我需要类似的东西: if (TestMode) { ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; } else { //enable certificate valida
0 2024-04-23
编程技术问答社区
C# X509Certificate2.Verify无废止测试
我尝试使用x509certificate2.verify()函数检查证书链是否有效. 验证函数返回false,ChainelementStatus返回" revocationStatusunknown". 有没有办法在不检查撤销status的情况下使用验证函数?没有Internet连接,无法检查撤消Status?是否还有其他功能可以检查链条和证书,而撤销了撤消? 一个肮脏的解决方案是检查evocationstatus是否是元素中的唯一元素.ChainElementStatus. 我已经使用x509 revocation mode.offline和ignorecertificateauthorityrevocationunknown. 代码来自: x509certificate2.verify()始终返回有效证书的false X509Chain ch = new X509Chain(); ch.Build(certificate); ch.ChainPol
6 2024-04-22
编程技术问答社区
对于 Windows exe/二进制文件,证书、签名和缩略图有什么区别?
我试图在Windows可执行文件和二进制文件的上下文中了解签名,拇指和证书之间的区别.在发布此问题之前,我在互联网上抬头,但没有得到简洁的差异.也许我对这三个术语的理解首先尚不清楚.有人可以帮我吗? 解决方案 a 证书是通常使用X.509标准生成的文档声称是(身份验证),也就是说,如果您说自己是www.example.com,那就是真正的人. 使用CA的私钥,经常由受信任的证书机构(CA)签署证书. 数字签名是证书的一部分,可用于验证CA是否真正签署了证书.通常,它是通过哈希证书的第一部分来计算的,然后使用CA私钥使用指定的加密算法. thumbprint 仅是整个证书(包括签名)上的哈希(SHA1或SHA256). 请注意,无论您在Windows还是其他平台上,这些术语都具有相同的相关性.
32 2024-04-22
编程技术问答社区
WCF证书身份验证不起作用
我已经构建了WCF Helloworld客户端和服务器.我想使用它们之间的证书身份验证. 我遇到的错误是"呼叫者没有由服务验证." 我使用makecert.exe创建了两个证书.客户上的证书安装在"个人"和"受信任的人"和"第三方根认证机构"下.我复制了证书,因为我不知道它是否应该仅在一个标题下 我的服务器webconfig如下
0 2024-04-22
编程技术问答社区