


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、NET中的許可證機制-License.NET 中的許可證機制主要裘:System.ComponentModel.License(為所有許可誑提供 abstract 荃矣向組件的持定實例授子許可證)System.ComponentModel.LicenseContext(揭定何時可使用授權(quán)的對氧并且提供一種方法.用以我取為支持在梵域內(nèi)運行的許可證所需要的附加展務(wù))Systom.ComponGntModel.LicenseException(表示當組件不能被授予許可證時引發(fā)的異魚)SystGm.ComponGntModel.LicenseManagor(提供展性和方法.用以特許可證添加到組件和管璋
2、 LicensoProvidor)SystGm.ComponontModel.LiconseProvidorabstract 慕類以使實現(xiàn)許可證 J8WW序)System.ComponGntModol.LiCGnseProviderAttributG(指定蚩與尖一起使用的 LlcenseProvIder)許可證機制簡介.NetFramework中的i攵可證占址機制基于System.ComponentModelib名空間中的License.LtcenseContextLiconseException.LicenseManager.LicenseProvider和LicenscProviderAt
3、tributeA個類實現(xiàn)的。Licensed-個抽象類.用于代表許可證主體:Licensecontext 中保存了許可證的上下文.其中 UsageModeS 性可以用來獲取當荊是運行時(runtime)還是設(shè)計模式(designtime):LicenseException 是許可證相關(guān)的異常.當許可證信息不可用時.在調(diào)用 LicenseProvider(或耳派生類)實例的 GetLcense 方法時將拋出此類型的異常:LicenseManagerg-個密封(sealed)類.LiconseManager 提供了多個靜態(tài)(siaEc)方法用于驗證許可證、 我取許可證等損作: LicensoPro
4、vidofAttributoH 性用于捋定某一個矣所采用的許可證提儀程序(bconsoProvidor)的具體關(guān)翌:LicensoProvidof 個 抽 箴 類 . 用 于 代 表 許 可 證 駭 證 機 刮 88 供 程 序 LiconsoProvIdor 的 莪 型 通 過 LiconseProvidorAttnbugK 性 提 供 給 CLR. 當 調(diào) 用 LicenseManagerW 作時.LicensGManagor?M8JLIcensProviderAnnbute 中所炎供的 UcGnsoProviderJ型創(chuàng)LicenseProwlGf 實例.井逬行相應(yīng)損作。LIcFileL
5、iconsoProvider于文本文件的許可證機簡單應(yīng)用:1:藝先要創(chuàng)雄一個 License.但是因為 License 是袖象的.所以要創(chuàng)建一個集成自 License 的子類.實現(xiàn) L)8nso 的一些方法。2:創(chuàng)建一個 LicenseProvider這個類fiSLicenseProvidGr 的矣。實現(xiàn)一些方法。LicenseProvider?!提供了洽證機制的程序。LicenseProvider 類夏重菽GetLicense(LicenseContext.Type.object.bool)方法.該方法 J3 正撮供了.一些算法.去實現(xiàn)驗證。3:創(chuàng)建一個自定義的類.并且給該類添 WLieen
6、sePfovidorAttributoK 性.指定對這個類鍛行驗證的機制柔用 LiceMProvidoG貝體代鈞:定義 Llcese5SprivateclassMyLicense:UcensG(privateStringmLicensoKey=null;privateMyLicenseProvidermProvider=null;publicMyLicense(MyLicenseProviderprovider.Stringkey)this.mProvider=pcovider;this.mLicenseKey=key;)publicoverridostringLiconsoKoyget(re
7、turnthis.mLicenseKGy:)publicoverrdGvoidDispose。this.mProvider=null;this.mLicenseKey=null;)定義 LicenseProvider?ReflGctionPermission(SecuntyAction.Deny.MombefAccGSS=falsG.RoflodlonEmlt=false)IntGmalclassMyLicenseProvideriLicenseprovider構(gòu)譴函數(shù)publicMyLcenseProvidef()(Wm 獲取本機MAC地址其實這個不 was 取本機貶件裁敢的任何信息祁可以這
8、更能標志該機卷即可IIIpnvaioStringGotMacAddross()(StringmacAddr=null:ManagementClassInetAdapter=newManagementClassC,W)N32_NetworkAdapterConfiguration,*);ManagemGntObjectCollecbonob)List=metAdapter.Getlnstancos();foreach(ManagementobjectmobjinobjList)returnmacAddr;W/獲取 Assembly 所在目錄我取應(yīng)用租序所在的目錄IIIpnvaieStringGo
9、tAss(nblyPath(LicensoContoxtcontext)StringfileName=null:Typetype=this.GetType();rrypeResolutionServiceservice=(ITypeResolutJonServicG)cont0 xt.GetSGrvice(typeof(ITypeResolutionService);if(serviceh=null)filoNamoservice.GetPathOfAssembly(typeAssembly.GetNafneO);)If(lleNamenull)filGName=type.Module.Ful
10、lyOualifledName;)returnPath.GetDirecxoryName(fileName);privateStringEncrypt(Stringsource)加密算法.可以用.也可不用.這整為了更安全.就用.r加密算法7byteflkeyData=EncodingASCII.GetBylG$(HW);byteflivData=Encoding7kSCII.GetBytesC4iJ9Qw#L,):MemoryStreamstream=newMemoryStream();DESdesProvider=newDESCryptoServiceProvider();CryptoStr
11、eamcs=newCryploStream(stream.doProvidor.CroatoEncryplor(koyDataivData).CryptoStreamMode.Writo);byteQbuttorEncodingSCII.GetBytos(soufce):cs.Wnte(buffer,0.bulGr.Length);cs.AushAnalBlock():cs.Close();buffer=stream.GetBuffer();stream.Close();returnConvertToBa$e64String(buffer);returnsource:publicoverrid
12、eLicenseGetLicense(LicGnseContGxtcontextTypetype,objectinstance,boolallowExceptions)MyLiccnselicense=null;計算 MAC 地址加超串StringmacAddr=thi$.GetMacAddress):Stringencrypt=this.Encrypt(macAddr);if(context!null)if(coniextUsageMode“LiconseUsagoModo.Runtime)(StringsavedLicenseKey=contexlGetSavedUcGnseKGy(typ
13、e.null);if(Gncrypt.Equals(savedUcenseKey)returnnewMyicense(this.encrypt):)if(license!null)(returnliCGnse;打開 License 文件license.darStringpath=this.GetAssemblyPath(context):StringlicFile=Path.Combine(path.nicense.daf):if(He.Exists(licFile)(StreamfsnewFlleStroam(licFile.FileMode.Opon.AleAccess.Road);Str
14、oamRoadorsr=nowStr0amRoador(fs);StringreadedLicenseKey=Sf.RoadToEndO:sr.Close():fs.Close();if(encrypl.Equals(readedLiceriseKey)license=newMyti8nse(this.encrypt);)if(license!null)contextSetSavGdLicensoKey(type.encrypt);if(license=null)Sysiem.Windows.Forms.MessageBox.ShowC!*!ffii 未注冊!r);returnnewMyLicense(this,evaluate*);)returnlicense:I摘定該類逬行許可駿證的程序采用 MyLicenseProviderS 句必須的。(LicenseProvider(typeof(MyiCGnseProvKlef)publicpartialclassLicenseHelperpnvateLicensemLicense=null;publicLicenseHelperOthis.mlJcensoLiconseManagor.Validate(typoof(LicenseHelper)this):-LicenseHelperO 析溝函散在 C 劇中.不常用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 心理健康教育與學生綜合素質(zhì)提升研究
- 教育技術(shù)在智慧城市中的應(yīng)用與發(fā)展
- 技術(shù)促進教育與培訓領(lǐng)域的均衡發(fā)展
- 心理資本對學習行為的影響研究
- 從教育大數(shù)據(jù)看未來人才培養(yǎng)趨勢
- 教育信息化的視覺設(shè)計與傳播效果分析研究報告
- 教育機器人技術(shù)的國際合作與交流
- 2025屆湖北省鄂州市吳都中學物理高二下期末達標檢測試題含解析
- 教育技術(shù)在增強全民數(shù)字素養(yǎng)中的作用和價值體現(xiàn)
- 中職護理老師課件下載
- GA/T 2012-2023竊照專用器材鑒定技術(shù)規(guī)范
- Unit4課后文章拓展訓練-高中英語人教版(2019)選擇性必修第三冊
- 重鋼澳洲伊斯坦鑫鐵礦評估報告
- 《三國的世界》解說詞第二集
- 日立品牌推介方案
- DB44-T 1792-2015 自然保護區(qū)維管束植物多樣性調(diào)查與監(jiān)測技術(shù)規(guī)范
- 初中體育-武術(shù)十步拳教學課件設(shè)計
- 湖州市市級機關(guān)事業(yè)單位編外招聘考試試卷真題及答案2022
- 心內(nèi)科科室現(xiàn)狀調(diào)研總結(jié)與三年發(fā)展規(guī)劃匯報
- 第三章 科學研究與科學方法論
- 山東黃金歸來莊礦業(yè)有限公司歸來莊金礦礦山地質(zhì)環(huán)境保護與土地復(fù)墾方案
評論
0/150
提交評論