小编los*_*eep的帖子

如何从PEM文件中获取私钥?

我有一个.PEM文件,其中包含用于SSL数据传输的公钥和私钥,如下所示:

-----BEGIN RSA PRIVATE KEY-----
      private key data
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
      public key data
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

当我想通过以下代码加载.PEM文件时:

X509Certificate2 xx = new X509Certificate2("c:\\myKey.pem");
Run Code Online (Sandbox Code Playgroud)

我得到一个例外,说:"找不到请求的对象." ,满堆栈:

System.Security.Cryptography.CryptographicException was unhandled
  Message=Cannot find the requested object.

  Source=mscorlib
  StackTrace:
       at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
       at System.Security.Cryptography.X509Certificates.X509Utils._QueryCertFileType(String fileName)
       at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags)
       at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName)
       at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName)
       at DLLTest.SSL_Test.test() in E:\Projects\DLLTest\DLLTest\SSL_Test.cs:line 165
       at DLLTest.SSL_Test.Run() in E:\Projects\DLLTest\DLLTest\SSL_Test.cs:line 21
       at DLLTest.Program.Main(String[] args) in E:\Projects\DLLTest\DLLTest\Program.cs:line 21
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, …
Run Code Online (Sandbox Code Playgroud)

.net ssl cryptography pem private-key

31
推荐指数
5
解决办法
6万
查看次数

如何检查HANDLE是否有效?

在C++中,我打开了一个有一个的串口HANDLE.由于端口可能被外部应用程序关闭,如何HANDLE在读取数据之前验证它是否仍然有效?

我认为可以通过检查HANDLE合适的API函数来完成,但是哪个?谢谢.

c c++ port winapi handle

19
推荐指数
3
解决办法
5万
查看次数

如何在Entity Framework 4 .NET中更新实体

我的代码是这样的:

public class Program
{
 [STAThread]
 static void main()
 {
  DataAccessClass dal = new DataAccessClass();
  List<Person> list = dal.GetPersons();
  Person p = list[0];
  p.LastName = "Changed!";
  dal.Update(p);
 }
}

public class DataAccessClass
{
 public static List<Person> GetPersons()
 {
  MyDBEntities context = new MyDBEntities();
  return context.Persons.ToList();
 }

 public void Update(Person p)
 {
  // what sould be written here?
 }
}
Run Code Online (Sandbox Code Playgroud)

现在请告诉我应该在Update()方法中写什么?我写的一切,遇到各种例外.(请注意加载的数据是跟踪,连接或类似的)

ado.net entity-framework

10
推荐指数
1
解决办法
1万
查看次数

如何下载Platform Builder for Windows CE 5.0?

我正在使用Windows CE 5.0的设备上开发应用程序.我需要更改操作系统,例如语言安装&...,似乎我需要一个名为Microsoft Platform Builder的IDE.但我怎么能得到它?有免费下载的免费版本吗?我用Google搜索网络,但什么也没得到!

platform-builder windows-ce

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

NDC +协议(NCR直连)文档?

NDC是NCR公司的ATM软件应用程序协议.任何人都可以告诉我如何获得NDC/NDC +/Advanced NDC的文档?因为我想基于它开发模拟器和应用程序(ATM和主机).
谢谢.

financial cen-xfs

6
推荐指数
0
解决办法
7513
查看次数

如何在Java中发送SOAP请求标头?

我有一个WSDL文件(Web服务由.NET编写),我可以通过其工具在IntelliJ IDEA 7.0.4中生成java web服务客户端代理类和代码.Web服务有一个soap请求标头,但我看不到自动生成的Java代理类和代码中的任何属性或方法来设置请求标头.(但是当我使用Visual Studio 2008为C#生成代理类时,在Web服务代理类中创建一个对象作为标题,因此我可以设置简单填充它)

我该怎么做Java?

java soap header request

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

如何从单个控件中删除焦点?

在我的C#WinForms程序中,我有一个只有一个Button控件的表单.默认情况下,该Button控件接收窗体上的焦点.但我不希望Button能够获得焦点.

有没有一个解决方案,即使需要调用非托管API的解决方案?

.net c# winforms

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

C#跨线程通信

在 C#.NET 中,我编写了以下简单的后台工作线程:

public class MyBackgrounder
{
    public delegate void dlgAlert();
    public dlgAlert Alert;
    public event EventHandler eventAlert;
    Thread trd;

    public void Start()
    {
        if (trd == null || trd.ThreadState == ThreadState.Aborted)
        {
            trd = new Thread(new ThreadStart(Do));
        }
        trd.IsBackground = true;
        trd.Priority = ThreadPriority.BelowNormal;
        trd.Start();
    }

    void Do()
    {

        Thread.Sleep(3000);
        Done();
    }

    void Done()
    {
        if (Alert != null)
            Alert();
        if (eventAlert != null)
            eventAlert(this, new EventArgs());
        Kill();
    }

    public void Kill()
    {
        if (trd != null)
            trd.Abort();
        trd …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading delegates

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

通过C#调用Win32 api失败!

我有一个C++函数导出为api像这样:

#define WIN322_API __declspec(dllexport)
WIN322_API char* Test(LPSTR str);
WIN322_API char* Test(LPSTR str)
{
 return "hello";
}
Run Code Online (Sandbox Code Playgroud)

该函数由.DEF文件正确导出为API,因为我可以在Dependency Walker工具中看到它.现在我有一个C#测试程序:

[DllImport("c:\\win322.dll")]

public static extern string Test([MarshalAs(UnmanagedType.LPStr)] String str);

private void Form1_Load(object sender, EventArgs e)
        {
string _str = "0221";
Test(_str); // runtime error here!

}
Run Code Online (Sandbox Code Playgroud)

在调用Test()方法时我得到错误:

"调用PInvoke函数'MyClient!MyClient.Form1 :: Test'使堆栈失衡.这很可能是因为托管PInvoke签名与非托管目标签名不匹配.请检查PInvoke签名的调用约定和参数是否与目标非托管签名."

我尝试了很多其他数据类型和编组,但什么也没得到!请帮助我!

c# c++ pinvoke winapi

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

如何在 SslStream.AuthenticateAsClient 方法中使用证书回调?

当我在 IE 中手动导入证书(工具/Internet 选项/内容/证书)时,我的 C#.NET SSL 连接有效,但是如何通过代码加载证书?这是我的代码:

TcpClient client = new TcpClient(ConfigManager.SSLSwitchIP, Convert.ToInt32(ConfigManager.SSLSwitchPort));

SslStream sslStream = new SslStream(
                client.GetStream(),
                false,
                new RemoteCertificateValidationCallback(ValidateServerCertificate),
                null
                );
sslStream.AuthenticateAsClient("Test");
Run Code Online (Sandbox Code Playgroud)

如果我在 Internet Explorer 中手动导入我的证书文件,上面的代码工作正常。但是,如果我从 IE 中删除我的证书并改用以下代码,则会出现身份验证异常:

sslStream.AuthenticateAsClient("Test", GetX509CertificateCollection(), SslProtocols.Default, false);
Run Code Online (Sandbox Code Playgroud)

这是“GetX509CertificateCollection”方法:

public static X509CertificateCollection GetX509CertificateCollection()
        {
            X509Certificate2 certificate1 = new X509Certificate2("c:\\ssl.txt");
            X509CertificateCollection collection1 = new X509CertificateCollection();
            collection1.Add(certificate1);
            return collection1;
        }
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能动态加载我的证书?

c# ssl certificate x509certificate

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

如何实现动作的忽略/重试/取消模式?

我有一个由C#.NET 4.0开发的两层Windows窗体应用程序.在此APP中,我读取文件内容并在Data-Access-Layer中创建实体列表,并将其返回到GUI层以在网格视图中显示.在我当前的逻辑中,如果文件中的一行已损坏或格式错误(我无法从中创建实体)或任何其他异常,我抛出异常并中止该过程.现在,我如何实现忽略/重试/取消模式?我的意思是什么是显示忽略/重试/取消对话框并执行任何用户想要的最佳方式(例如,忽略当前行并转到下一行,取消该过程,或重试当前失败的行读取)?它有什么模式吗?

c# design-patterns

2
推荐指数
1
解决办法
6988
查看次数

如何将 DataGridViewColumn 单元格设置为不可选择?

在 C# 4.0 (Visual Studio 2010) 中,我有一个 Windows 窗体 DataGridView,它必须是多选的,并且它有一个指定的列,我不希望它的单元格是可选的。我该怎么办?

c# datagridview

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

无法从C#.NET加载Win32本机DLL文件

我有一个C#winapp.我从C#应用程序调用一个原生.dll文件(由我自己创建),它工作正常.

但是当我将我的应用程序(.exe和.dll文件)复制到另一台机器时,我收到一条错误消息:

无法加载DLL"c:\ dllname.dll":找不到指定的模块.(来自HRESULT的异常:0x8007007E)

这是C#代码:

class IsoMessageHelper
{
    public const string ISO8583_DLL = "c:\\Hc8583.dll";
    [DllImport(ISO8583_DLL, CallingConvention = CallingConvention.Cdecl)]
    public static extern bool InitializationRq(...)
}
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

c# dll winapi

0
推荐指数
1
解决办法
2686
查看次数