-
大小: 65KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-06-08
- 語言: C#
- 標(biāo)簽: C#??RDP??遠(yuǎn)程連接??
資源簡介
相關(guān)描述在http://blog.csdn.net/btlong520/article/details/50489720

代碼片段和文件信息
using?System;
using?System.Runtime.InteropServices;
using?System.Text;
using?System.Security;
namespace?RDPdemo
{
????[Serializable()]
????public?sealed?class?DataProtection
????{
????????[Flags()]
????????public?enum?CryptProtectPromptFlags
????????{
????????????CRYPTPROTECT_PROMPT_ON_UNPROTECT?=?0x01
????????????CRYPTPROTECT_PROMPT_ON_PROTECT?=?0x02
????????????CRYPTPROTECT_PROMPT_RESERVED?=?0x04
????????????CRYPTPROTECT_PROMPT_STRONG?=?0x08
????????????CRYPTPROTECT_PROMPT_REQUIRE_STRONG?=?0x10
????????}
????????[Flags()]
????????public?enum?CryptProtectDataFlags
????????{
????????????CRYPTPROTECT_UI_FORBIDDEN?=?0x01
????????????CRYPTPROTECT_LOCAL_MACHINE?=?0x04
????????????CRYPTPROTECT_CRED_SYNC?=?0x08
????????????CRYPTPROTECT_AUDIT?=?0x10
????????????CRYPTPROTECT_NO_RECOVERY?=?0x20
????????????CRYPTPROTECT_VERIFY_PROTECTION?=?0x40
????????????CRYPTPROTECT_CRED_REGENERATE?=?0x80
????????}
????????#region?加密數(shù)據(jù)
????????public?static?string?ProtectData(string?data?string?name)
????????{
????????????return?ProtectData(data?name
????????????????CryptProtectDataFlags.CRYPTPROTECT_UI_FORBIDDEN?|?CryptProtectDataFlags.CRYPTPROTECT_LOCAL_MACHINE);
????????}
????????public?static?byte[]?ProtectData(byte[]?data?string?name)
????????{
????????????return?ProtectData(data?name
????????????????CryptProtectDataFlags.CRYPTPROTECT_UI_FORBIDDEN?|?CryptProtectDataFlags.CRYPTPROTECT_LOCAL_MACHINE);
????????}
????????public?static?string?ProtectData(string?data?string?name?CryptProtectDataFlags?flags)
????????{
????????????byte[]?dataIn?=?Encoding.Unicode.GetBytes(data);
????????????byte[]?dataOut?=?ProtectData(dataIn?name?flags);
????????????if?(dataOut?!=?null)
????????????????return?(Convert.Tobase64String(dataOut));
????????????else
????????????????return?null;
????????}
????????///?
????????///?加密數(shù)據(jù)
????????///?
????????///?要加密的明文數(shù)據(jù)
????????///?有意義的描述,此描述會加到加密后的數(shù)據(jù)中
????????///?flags的位標(biāo)志
????????///?
????????private?static?byte[]?ProtectData(byte[]?data?string?name?CryptProtectDataFlags?dwFlags)
????????{
????????????byte[]?cipherText?=?null;
????????????//?copy?data?into?unmanaged?memory
????????????//DATA_BLOB結(jié)構(gòu),用于CryptProtectData參數(shù)
????????????DPAPI.DATA_BLOB?din?=?new?DPAPI.DATA_BLOB();
????????????din.cbData?=?data.Length;
????????????//Marshal類的作用:提供了一個方法集,這些方法用于分配非托管內(nèi)存、復(fù)制非托管內(nèi)存塊、將托管類型轉(zhuǎn)換為非托管類型,
????????????//此外還提供了在與非托管代碼交互時使用的其他雜項方法。?
????????????//為din.pbData分配內(nèi)存
????????????din.pbData?=?Marshal.AllocHGlobal(din.cbData);
????????????//InPtr結(jié)構(gòu):用于表示指針或句柄的平臺特定類型
????????????//分配內(nèi)存錯誤,拋出內(nèi)存不足異常
????????????//IntPtr.Zero:一個只讀字段,代表已初始化為零的指針或句柄
????????????if?(din.pbData.Equals(IntPtr.Zero))
????????????????throw?new?OutOfMemoryException(“Unable?to?allocate?memory?for?buffer.“);
????????????//將data數(shù)組中的數(shù)據(jù)復(fù)制到pbData內(nèi)存指針中
??????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-01-09?20:59??RDPdemo\
?????目錄???????????0??2016-01-09?21:39??RDPdemo\RDPdemo\
?????文件????????7586??2016-01-09?21:00??RDPdemo\RDPdemo\DataProtection.cs
?????文件????????6935??2016-01-09?21:33??RDPdemo\RDPdemo\Form1.Designer.cs
?????文件????????2273??2016-01-09?21:39??RDPdemo\RDPdemo\Form1.cs
?????文件????????5817??2016-01-09?21:33??RDPdemo\RDPdemo\Form1.resx
?????文件?????????488??2016-01-09?20:59??RDPdemo\RDPdemo\Program.cs
?????目錄???????????0??2016-01-09?21:23??RDPdemo\RDPdemo\Properties\
?????文件????????1356??2016-01-09?20:59??RDPdemo\RDPdemo\Properties\AssemblyInfo.cs
?????文件????????3925??2016-01-09?21:23??RDPdemo\RDPdemo\Properties\Resources.Designer.cs
?????文件????????6202??2016-01-09?21:23??RDPdemo\RDPdemo\Properties\Resources.resx
?????文件????????1094??2016-01-09?20:59??RDPdemo\RDPdemo\Properties\Settings.Designer.cs
?????文件?????????249??2016-01-09?20:59??RDPdemo\RDPdemo\Properties\Settings.settings
?????文件????????3845??2016-01-09?21:23??RDPdemo\RDPdemo\RDPdemo.csproj
?????目錄???????????0??2016-01-09?21:23??RDPdemo\RDPdemo\Resources\
?????文件????????1181??2016-01-09?21:23??RDPdemo\RDPdemo\Resources\TemplateRDP.txt
?????目錄???????????0??2016-01-09?21:00??RDPdemo\RDPdemo\bin\
?????目錄???????????0??2016-01-09?21:37??RDPdemo\RDPdemo\bin\Debug\
?????文件???????15872??2016-01-09?21:39??RDPdemo\RDPdemo\bin\Debug\RDPdemo.exe
?????文件???????30208??2016-01-09?21:39??RDPdemo\RDPdemo\bin\Debug\RDPdemo.pdb
?????文件???????22704??2016-01-09?21:40??RDPdemo\RDPdemo\bin\Debug\RDPdemo.vshost.exe
?????文件????????1625??2016-01-09?21:39??RDPdemo\RDPdemo\bin\Debug\ceshi.rdp
?????目錄???????????0??2016-01-09?21:40??RDPdemo\RDPdemo\bin\Release\
?????目錄???????????0??2016-01-09?20:59??RDPdemo\RDPdemo\obj\
?????目錄???????????0??2016-01-09?21:39??RDPdemo\RDPdemo\obj\Debug\
?????文件?????????791??2016-01-09?20:59??RDPdemo\RDPdemo\obj\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件????????6873??2016-01-09?21:23??RDPdemo\RDPdemo\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件?????????180??2016-01-09?21:33??RDPdemo\RDPdemo\obj\Debug\RDPdemo.Form1.resources
?????文件????????1399??2016-01-09?21:24??RDPdemo\RDPdemo\obj\Debug\RDPdemo.Properties.Resources.resources
?????文件?????????586??2016-01-09?21:40??RDPdemo\RDPdemo\obj\Debug\RDPdemo.csproj.FileListAbsolute.txt
?????文件?????????892??2016-01-09?21:33??RDPdemo\RDPdemo\obj\Debug\RDPdemo.csproj.GenerateResource.Cache
............此處省略7個文件信息
評論
共有 條評論