2011-01-11 96 views
3

我有一個奇怪的問題。我正在使用c#代碼背後的.NET項目。我正在嘗試使用公鑰/私鑰加密/解密文件。自從我開始研究加密以來,這已經發生了幾次。關於如何使加密工作的實際問題將在稍後發佈。.Net跳過代碼

問題是,當我遍歷代碼時,指針退出例程。它不會崩潰或被try/catch塊捕獲。

在下面的情況下獲取公鑰的工作行,但獲取私鑰的行沒有。它只是跳過並返回到調用模塊。

string publicKey; // gets the public key 
string privateKey; // gets the private key 
try 
{ 
    CspParameters cspParam = new CspParameters(); 
    cspParam.Flags = CspProviderFlags.UseMachineKeyStore; 
    System.Security.Cryptography.RSACryptoServiceProvider RSA = 
     new System.Security.Cryptography.RSACryptoServiceProvider(cspParam); 
    //  The key information 
    //from the cspParam object above can be saved via 
    //select the; 
    publicKey = RSA.ToXmlString(false); // gets the public key 
    privateKey = RSA.ToXmlString(true); // gets the private key 
    string x = publicKey; 
} 
catch (Exception ex) 
{ 
    clsGetMessage.DisplayError(ex); 
} 
+0

很難說,但我懷疑這是一個權限問題(ASP.NET進程沒有私鑰權限),也許拋出一個異常不是從Exception派生的。 – sdcoder 2011-01-11 18:41:18

+0

你的意思是Windows Forms或ASP.NET? Windows窗體沒有隱藏代碼。 – 2011-01-11 18:41:49

回答

2

您是否基於使用VS進行調試這麼說? 您是否驗證堆棧跟蹤或日誌以查看該方法是否被調用?

VS調試器可能會指導您在多線程情況下出錯。

0

由於PrivateKey沒有在任何地方使用,可能函數調用被編譯器刪除?