Asp.net web api 在WebApi中使用FindPrivateKey
我下载了FindPrivateKey.exe的源代码 我使用此exe查找私钥的文件名和文件夹。我必须在机器上本地运行这个。我正在寻找一种方法来获取这些信息远程使用web api FindPrivateKey.exe本身作为控制台应用程序工作 但在我的webapi代码中,它不起作用(CryptAcquireCertificatePrivateKey返回false) 这有明显的原因吗?web api站点启用了AllowAnonymousAccess,这是为什么 我在包含代码片段时遇到问题。总结: 店名是“我的” 存储位置为“本地计算机”Asp.net web api 在WebApi中使用FindPrivateKey,asp.net-web-api,certificate,Asp.net Web Api,Certificate,我下载了FindPrivateKey.exe的源代码 我使用此exe查找私钥的文件名和文件夹。我必须在机器上本地运行这个。我正在寻找一种方法来获取这些信息远程使用web api FindPrivateKey.exe本身作为控制台应用程序工作 但在我的webapi代码中,它不起作用(CryptAcquireCertificatePrivateKey返回false) 这有明显的原因吗?web api站点启用了AllowAnonymousAccess,这是为什么 我在包含代码片段时遇到问题。总结: 店
我能够通过首先模拟一个拥有私钥信息权限的用户来实现这一点。对于任何感兴趣的人,请谷歌下载下面的DllImport代码,了解如何做到这一点
[DllImport("advapi32.dll", CharSet = CharSet.Auto)]
public static extern int LogonUser(
string lpszUserName,
String lpszDomain,
String lpszPassword,
int dwLogonType,
int dwLogonProvider,
ref IntPtr phToken);
[DllImport("advapi32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)]
public extern static int DuplicateToken(
IntPtr hToken,
int impersonationLevel,
ref IntPtr hNewToken);
[DllImport("advapi32.dll", CharSet = CharSet.Auto)]
public static extern int LogonUser(
string lpszUserName,
String lpszDomain,
String lpszPassword,
int dwLogonType,
int dwLogonProvider,
ref IntPtr phToken);
[DllImport("advapi32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)]
public extern static int DuplicateToken(
IntPtr hToken,
int impersonationLevel,
ref IntPtr hNewToken);