tag:blogger.com,1999:blog-45243946886901925682024-03-13T12:19:25.575-07:00Manco Softwareamurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.comBlogger26125tag:blogger.com,1999:blog-4524394688690192568.post-82501985986233294412015-07-01T01:43:00.001-07:002015-07-01T01:43:56.130-07:00Version 9.0 of the Manco .NET Licensing System has been released<div dir="ltr" style="text-align: left;" trbidi="on">
Manco .NET Licensing System version 9.0 is available now. You can get 15-days trial version at the <a href="http://www.mancosoftware.com/licensing/download.htm">http://www.mancosoftware.com/licensing/download.htm</a><br />
<br />
List of the most significant changes made in the new version:<br />
<br />
<ol style="text-align: left;">
<li>The License Manager was redesigned from scratch. New UI is friendlier to the devices with small screen resolution (tablets, netbooks and so on).<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQm4cuMTU7GG01ScEL79Ko9ujRFw9fm0joh8gRLBYye3zRHFIrrnvsvV8McV0TeRNfQWeSuEeQZ0vk1Mv9fkQW1FGhFhIOGu5yoSlXlab-BLjvjimo7WZpDb2KCtVcUijGrhzkXc6Wojcp/s1600/LicenseManager.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQm4cuMTU7GG01ScEL79Ko9ujRFw9fm0joh8gRLBYye3zRHFIrrnvsvV8McV0TeRNfQWeSuEeQZ0vk1Mv9fkQW1FGhFhIOGu5yoSlXlab-BLjvjimo7WZpDb2KCtVcUijGrhzkXc6Wojcp/s320/LicenseManager.png" width="320" /></a></div>
</li>
<li>List of the columns in the sales data grid is configurable now. You can choose which license rules and/or custom values should be show. Every license type can have own sales data grid configuration.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHuG9fif4vtQpQiTpmUEkPGnXnzkY_oQ2s40DEp3vb_1gagW0ttRsDL0umqpGZoL8wWeMCH8e0uQznOwP9HNqRUBDfiykJEPu4i_tzuViEAZbrAeKBRDiYbjYjRns_aFCBU6NMl1vw3KEX/s1600/SalesListViewToolbarExpansion.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHuG9fif4vtQpQiTpmUEkPGnXnzkY_oQ2s40DEp3vb_1gagW0ttRsDL0umqpGZoL8wWeMCH8e0uQznOwP9HNqRUBDfiykJEPu4i_tzuViEAZbrAeKBRDiYbjYjRns_aFCBU6NMl1vw3KEX/s320/SalesListViewToolbarExpansion.png" width="320" /></a></div>
</li>
<li>Added dialog for configuring the edit control for license rule value and custom license value.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-4awOGAVQ8mQuUf4047UHDQtOcRYcwku-S0jLJArUb_8bXvUdLh_gvQEUMydhbruNlF40j4RgSPkfZwBnaCQns3SLp4nc_4sqjDjX0NlB-CnomJZdIX7Svo33zvl_3bgilwAjIyk-U4if/s1600/Default.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="304" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-4awOGAVQ8mQuUf4047UHDQtOcRYcwku-S0jLJArUb_8bXvUdLh_gvQEUMydhbruNlF40j4RgSPkfZwBnaCQns3SLp4nc_4sqjDjX0NlB-CnomJZdIX7Svo33zvl_3bgilwAjIyk-U4if/s320/Default.png" width="320" /></a></div>
</li>
<li>The conditions set for customer search are applied now to the list of the sales as well. For example, if you search customer using Unlock Key and customer has several sale records with different keys then you will see the record which correspond to the entered Unlock Key only.</li>
<li>e-Mail XSLT now is stored in the database (complete XSLT, not a file path). It makes possible using of the same transformation in both License Manager and Activation Web Service.</li>
<li>The License Shop was redesigned from scratch.</li>
<li>The Data Service was redesigned from scratch.</li>
<li>New UI for the Protected Storage Cleaner.<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvkk5JoE8w_SzYpc_WX5Z2bQF8f9BiErRcR64lJaSXieJjhCS88w2i_l9ycdllLy6HpBfWIdFNxSgtjatePidlZ1hIK-9a266sBmU2YNCLJKZoLWLZkf8Cc4xIyWR1vUlHIanUKKIMhXUL/s1600/ProtectedStorageCleanerVersion.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvkk5JoE8w_SzYpc_WX5Z2bQF8f9BiErRcR64lJaSXieJjhCS88w2i_l9ycdllLy6HpBfWIdFNxSgtjatePidlZ1hIK-9a266sBmU2YNCLJKZoLWLZkf8Cc4xIyWR1vUlHIanUKKIMhXUL/s320/ProtectedStorageCleanerVersion.png" width="320" /></a></div>
</li>
<li>New UI for the Floating License Service Admin tool.</li>
<li>Protection libraries for the .NET Framework 4.5 and for Windows Store applications were redesigned to allow asynchronous loading of the license file.</li>
<li>Fixed few minor problems in the protection library.</li>
</ol>
</div>
amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-16081744438500153222015-02-01T03:05:00.000-08:002015-02-01T03:05:50.167-08:00Manco .NET Licensing System version 9.0 announcement - Part 2<div dir="ltr" style="text-align: left;" trbidi="on">
Today I continue announcing the new features of the upcoming version 9.0 of the Manco .NET Licensing System. <br />
<br />Some our clients say that it is hard to use sales list view on the low-resolution tablet devices. The important license rules can be out of the viewport and require scrolling to see their values. In the version 9.0 we decided to not show purchase details in the sales list view. So currently it looks like the following:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg6Of40g1axxsJp_fwAgOrcIFfYjYuPUhYJPldPd8qpkhtcBeevPOa0gQ2HL-MLmaFcXnIGrA-iWPdY58iAMmARm-1o1bfUlPLyqd0XJXA3SwcyxA-_TocKCKneDMFoMZFxaFbfXW63LUU/s1600/LicenseTypeCustomerListWindow.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg6Of40g1axxsJp_fwAgOrcIFfYjYuPUhYJPldPd8qpkhtcBeevPOa0gQ2HL-MLmaFcXnIGrA-iWPdY58iAMmARm-1o1bfUlPLyqd0XJXA3SwcyxA-_TocKCKneDMFoMZFxaFbfXW63LUU/s1600/LicenseTypeCustomerListWindow.png" height="266" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9fQ0xNO11yQAcxRLvz1LASi3fBpcxlfYXKQGR8GUAGdtuOvH9D4-xSRLfta8rfIHeJMv8vFBr-4EA8fsjDautBPivbQVG5N_PGiYrTWrnXCfhF38Dg9cX5oyIqWSQVAfkI8kkxbQrf9f6/s1600/SalesListViewToolbarExpansion.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a> </div>
<br /><br />You can ask me how to see values of the license rules now. It is very easy and much more useful than in the previous version. You can completely reconfigure what columns are shown in the sales grid view. Expand toolbar of the sales view to show all options available:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9fQ0xNO11yQAcxRLvz1LASi3fBpcxlfYXKQGR8GUAGdtuOvH9D4-xSRLfta8rfIHeJMv8vFBr-4EA8fsjDautBPivbQVG5N_PGiYrTWrnXCfhF38Dg9cX5oyIqWSQVAfkI8kkxbQrf9f6/s1600/SalesListViewToolbarExpansion.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9fQ0xNO11yQAcxRLvz1LASi3fBpcxlfYXKQGR8GUAGdtuOvH9D4-xSRLfta8rfIHeJMv8vFBr-4EA8fsjDautBPivbQVG5N_PGiYrTWrnXCfhF38Dg9cX5oyIqWSQVAfkI8kkxbQrf9f6/s1600/SalesListViewToolbarExpansion.png" height="207" width="320" /></a><br /><br />Select “Edit config”. The “Edit grid view configuration” dialog appears. Here you can select which columns are visible:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXaBkxqvoUo8IZE7JbC4dsTctP9j2YyiyK6YRIRzxQht4rJfdKXT460_4fPtf3SDObt1l76Kn3bZIhSz9tX131Xx98McXIaeX5EzxR-c66mslx4Yqrsxat7yNTmjaBxricwlG8BX3HMXYZ/s1600/EditGridViewConfigWindow.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXaBkxqvoUo8IZE7JbC4dsTctP9j2YyiyK6YRIRzxQht4rJfdKXT460_4fPtf3SDObt1l76Kn3bZIhSz9tX131Xx98McXIaeX5EzxR-c66mslx4Yqrsxat7yNTmjaBxricwlG8BX3HMXYZ/s1600/EditGridViewConfigWindow.png" height="266" width="400" /></a><br /><br />You can select properties of the sale record (like “Income” or “Allowed”), values of the license rules, and custom values. For example, for the standard “Unlock Key” licensing schema you can choose to show just few properties of the sale record and value of the “Unlock Key” license rule:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVA5ZPeA1gPXDEnWrsasnHTVG1DeBLEife0ksz4cMCP0nNK7T0kXTo-Ns0eZvjW-sQJ_cj1-hlOVIwAqSLH6eoB2F9BrZsidDdTsvDUQ5uJC97RITnwT15P1r5Puh-eLIsbJ5YAEsNwXES/s1600/UnlockKeyGridViewConfig.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVA5ZPeA1gPXDEnWrsasnHTVG1DeBLEife0ksz4cMCP0nNK7T0kXTo-Ns0eZvjW-sQJ_cj1-hlOVIwAqSLH6eoB2F9BrZsidDdTsvDUQ5uJC97RITnwT15P1r5Puh-eLIsbJ5YAEsNwXES/s1600/UnlockKeyGridViewConfig.png" height="267" width="400" /></a><br /><br />If you need copy value of the license rule or custom value to the clipboard then simple right-click correspondent sale record and select “Copy” from the context menu:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbvHabhNp1EkiH65B11uLf7qGtp7SIqrQzPw7oUsjwwiiw8Ytt9Ctm2fdlXUTmHT6dWDmfTS5DksYzZd2e7w9sDIYnWTqbAIjGOqkvnkfXMcFigsFEk1A7lmdMbZOhCc21jRb6HCLzBF4u/s1600/SaleRecordContextMenu.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbvHabhNp1EkiH65B11uLf7qGtp7SIqrQzPw7oUsjwwiiw8Ytt9Ctm2fdlXUTmHT6dWDmfTS5DksYzZd2e7w9sDIYnWTqbAIjGOqkvnkfXMcFigsFEk1A7lmdMbZOhCc21jRb6HCLzBF4u/s1600/SaleRecordContextMenu.png" height="107" width="400" /></a><br /></div>
amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-88485965833706416592014-12-05T02:12:00.000-08:002014-12-05T02:12:37.594-08:00Manco .NET Licensing System version 9.0 announcement - Part 1<div dir="ltr" style="text-align: left;" trbidi="on">
Currently we are working on the version 9.0 of the Manco .NET Licensing System. While it is not available publicly I'm going to write a few articles about new features we are planning for this version. <br />
<br />
First of all, since version 9.0 we stop supporting .NET Framework 3.5 in the protection library. But you still be able to use new License Manager to generate licenses for applications which use old protection library. <br />
<br />
We've made several changes in the protection library which speed the up the license validation process. Version of the protection library for .NET Framework 4.5 now supports the asynchronous license file loading. So you can write something like that:<br />
<br />
<br />
<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">public</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> MainForm()</span></span><br />
<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">{<br />
InitializeComponent();</span> </span><span style="color: green; font-family: Consolas; font-size: x-small;"><span style="color: green; font-family: Consolas; font-size: x-small;"><span style="color: green; font-family: Consolas; font-size: x-small;"> // Instantiate license object </span></span></span><br />
<span style="color: green; font-family: Consolas; font-size: x-small;"><span style="color: green; font-family: Consolas; font-size: x-small;"><span style="color: green; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> this</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.license = </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">new</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">License</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(</span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">this</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">); </span></span><br />
<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">}<br />
</span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">private</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">async</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">void</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> MainForm_Load(</span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">object</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> sender, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">EventArgs</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> e)</span></span><br />
<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">{</span></span><span style="color: green; font-family: Consolas; font-size: x-small;"><span style="color: green; font-family: Consolas; font-size: x-small;"><span style="color: green; font-family: Consolas; font-size: x-small;"> // First of all we should load license file</span></span></span><br />
<span style="color: green; font-family: Consolas; font-size: x-small;"><span style="color: green; font-family: Consolas; font-size: x-small;"><span style="color: green; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> await</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">this</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.license.LoadAsync();</span></span><br />
<br />
<span style="font-family: Consolas; font-size: x-small;"> ...<br />
<span style="font-family: Consolas; font-size: x-small;">}</span></span></span><br />
<span style="font-family: Consolas; font-size: x-small;"></span><br />
In the version 9.0 we redesign the UI of the License Manager completely. In the world of tablets and smartphones many our customers moved a customers and sales management to the devices with small screen resolution. Using of the current version of the License Manager on those devices is inconvenient because it has a high density of the information in views. So we decides to redesign UI of the License Manager to make it more tablet-friendly. It doesn't use tree view model anymore, but tile view instead. Here are few screenshots of the main window (you will get more in the upcoming messages):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrlTjoCc7AxYoYzwpuR-MBY6jjhi9ESvtCM-dRLFS7yWZYXNbMsEnnxE5bhQ43aeCrGJBy7oRGAyMs-wS0FBxJE_iJ0jmwOcTRzsODIi-5T4xZzBTgZ7gtMPJ-xI0CqT7BnbRjh6hGEKXa/s1600/License+Manager+-+Main+Window.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrlTjoCc7AxYoYzwpuR-MBY6jjhi9ESvtCM-dRLFS7yWZYXNbMsEnnxE5bhQ43aeCrGJBy7oRGAyMs-wS0FBxJE_iJ0jmwOcTRzsODIi-5T4xZzBTgZ7gtMPJ-xI0CqT7BnbRjh6hGEKXa/s1600/License+Manager+-+Main+Window.png" height="265" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN1c2E9W2aCYcBEf7pTA7bLkZ5I4M3RLVde4uDNQHMNgmy9bz-nt-0O7TfxLIvFNhWCUxyWfN6jyzJzn0CqMg3xC6cKyVCDPS1a-Qx4T2HbqyUyBUSSptswHLgLfSCOjMyKcPigXwSVzfF/s1600/License+Manager+-+Main+Window+-+Product+opened.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN1c2E9W2aCYcBEf7pTA7bLkZ5I4M3RLVde4uDNQHMNgmy9bz-nt-0O7TfxLIvFNhWCUxyWfN6jyzJzn0CqMg3xC6cKyVCDPS1a-Qx4T2HbqyUyBUSSptswHLgLfSCOjMyKcPigXwSVzfF/s1600/License+Manager+-+Main+Window+-+Product+opened.png" height="267" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMSyfjL_KGaINeNZfCTbbZFNhhOuhcvRYmnoIGq1Njjx6GNGr0Y5mcLgOrOua9slIFB8DVR8LmQ69412gob6YINGY68AnudMa33EHxJTYJWyJhqoWrD_NbP5J_qbcHSlsoJOkwKlQ3A16_/s1600/License+Manager+-+Main+Window+-+Version+opened.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMSyfjL_KGaINeNZfCTbbZFNhhOuhcvRYmnoIGq1Njjx6GNGr0Y5mcLgOrOua9slIFB8DVR8LmQ69412gob6YINGY68AnudMa33EHxJTYJWyJhqoWrD_NbP5J_qbcHSlsoJOkwKlQ3A16_/s1600/License+Manager+-+Main+Window+-+Version+opened.png" height="266" width="400" /></a></div>
<br />
</div>
amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-85936353393931353072014-07-27T01:03:00.000-07:002014-07-27T01:03:56.545-07:00Manco Shapefile Editor - Integration with Telerik RadMap control for WPF<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
The projects are created in the Manco Shapefile Editor can be easily loaded into the Telerik RadMap control with just few lines of code.<br />
<br />
You may ask why this is necessary. The Telerik RadMap control can load ESRI shape files and KML files. The Manco Shapefile Editor can export shapes into these formats. So at the first glance we need not this extra functionality. But think about following:<br />
<ol>
<li>The figures in the ESRI shape file format are represented by polylines and polygons. So every curve (ellipse, arc, Bezier curve and so on) created in the editor should be interpolated using polygons. It increases significantly number of the points are used to represent every shape and, as result, increase initial loading time, slowdown zooming in the RadMap, and makes curves look like polygon after some zoom level. In contrast any figures in the Manco Shapefile Editor project can be represented directly using correspondent map shapes in the Telerik RadMap control. So no interpolation is needed to represent shapes. It makes curves look absolutely same way as they were designed in the editor.</li>
<li>Using this feature you can not only load the shapes, but open correspondent map provider and load background images (when necessary) automatically</li>
</ol>
So this feature significantly simplifies process of the creation applications using Telerik RadMap control and makes resulting picture much better.<br />
<br />
To do it:<br />
<br />
<ol>
<li>Create new WPF application.</li>
<li>Add references for the RadMap control: <div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZc-ETZJnOrfJCy9nJlrA3BOAwWjgsx-NCbN9z0zXIaG60iRaF9fWOw9zR4NjKVM3Yrs0Phkuz-CbRq7a6ej820Frp3sBNrF8sB0j0l5XK_F3LNTbEMPnlkacnEpCN73ApvmzzhL06ROfz/s1600/TelerikReferences.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZc-ETZJnOrfJCy9nJlrA3BOAwWjgsx-NCbN9z0zXIaG60iRaF9fWOw9zR4NjKVM3Yrs0Phkuz-CbRq7a6ej820Frp3sBNrF8sB0j0l5XK_F3LNTbEMPnlkacnEpCN73ApvmzzhL06ROfz/s1600/TelerikReferences.png" /></a></div>
</li>
<li>Add RadBusyIndicator, RadMap control and button to load project into your XAML. Setup bindings for the map properties:<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">Window</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> x</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">:</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;">Class</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="TestWpfApplication.MainWindow"</span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> xmlns</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="http://schemas.microsoft.com/winfx/2006/xaml/presentation"</span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> xmlns</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">:</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;">x</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="http://schemas.microsoft.com/winfx/2006/xaml"</span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> xmlns</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">:</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;">telerik</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="http://schemas.telerik.com/2008/xaml/presentation"</span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Title</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="MainWindow"</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><br />
<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Height</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="520"</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Width</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="650"></span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> <</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">telerik</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">:</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">RadBusyIndicator</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Name</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="busyIndicator"></span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> <</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">Grid</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">></span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> <</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">Grid.ColumnDefinitions</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">></span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> <</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">ColumnDefinition</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Width</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="*" /></span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> <</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">ColumnDefinition</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Width</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="Auto" /></span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> </</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">Grid.ColumnDefinitions</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">></span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> <</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">telerik</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">:</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">RadMap</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Name</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="radMap"</span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Provider</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="{</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">Binding</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Provider</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">}"</span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Center</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="{</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">Binding</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Center</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">,</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Mode</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">=TwoWay}"</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><br />
<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> ZoomLevel</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="{</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">Binding</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> ZoomLevel</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">,</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Mode</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">=TwoWay}"</span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> MouseClickMode</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="SelectItem"</span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> MouseSelectionMode</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="RaiseEvent" /></span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> <</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">Button</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Grid.Column</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="1"</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><br />
<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Click</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="OnButtonClick"</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><br />
<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> VerticalAlignment</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="Top"</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><br />
<span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">
</span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> HorizontalAlignment</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="Stretch"></span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> <</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">TextBlock</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Margin</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="4,2,4,2"</span></span></span><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"><span style="color: red; font-family: Consolas; font-size: x-small;"> Text</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">="Load project" /></span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> </</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">Button</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">></span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> </</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">Grid</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">></span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> </span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"> </</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">telerik</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">:</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">RadBusyIndicator</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">></span></span></span><br />
<span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">
</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"></</span></span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">Window</span></span></span><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;"><span style="color: blue; font-family: Consolas; font-size: x-small;">></span></span></span></li>
<li>Add reference to the Manco.MapShapeData.Load.dll.</li>
<li>If you are using newer version of the Telerik RadControls for WPF than it was used to build Manco.MapShapeData.Load .dll then redirect assembly versions for Telerik assemblies as it is described <a href="http://msdn.microsoft.com/en-us/library/7wd6ex19%28v=VS.100%29.aspx">here</a>.</li>
<li>Add code which load project file and bind it to the RadMap control:</li>
</ol>
<strong>C#</strong><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">async</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">void</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> OnButtonClick(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">object</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> sender, </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">RoutedEventArgs</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> e)<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> OpenFileDialog</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> openProjectDialog = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">new</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">OpenFileDialog</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">();<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> openProjectDialog.Filter = </span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"ShapeFileEditor
Project Files|*.shprj"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> openProjectDialog.Multiselect
= </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">false</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> bool</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">? open =
openProjectDialog.ShowDialog();<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (open == </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">true</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> && !</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">string</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.IsNullOrEmpty(openProjectDialog.FileName))<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> {<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> await</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.LoadProject(<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> new</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Uri</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(openProjectDialog.FileName, </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">UriKind</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.RelativeOrAbsolute));<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> }<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">}<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">async</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Task</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> LoadProject(</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Uri</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> projectUri)<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.busyIndicator.IsIndeterminate = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">true</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.busyIndicator.IsBusy = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">true</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"></span><br />
<span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> ProjectInfo</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> info = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">await</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">ProjectReader</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Read(projectUri, </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Dispatcher);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.BindProject(info);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.busyIndicator.IsBusy = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">false</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">}<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">void</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> BindProject(</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">ProjectInfo</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> info)<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (info != </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">null</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> {<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (info.Errors.Count == 0)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> {<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> ProjectReader</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.CreateLayers(<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.radMap,<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> info,<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Resources[</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"PointDataTemplate"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">] </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">as</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">DataTemplate</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">,<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> null</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.radMap.DataContext = info;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> }<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> }<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">}<o:p></o:p></span><br />
<br />
<br />
<strong>VB.NET</strong><br />
<strong></strong><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Sub</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> OnButtonClick(sender </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Object</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">, e </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">RoutedEventArgs</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Dim</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> openProjectDialog </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">New</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">OpenFileDialog</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">()<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;">
</span>openProjectDialog.Filter = </span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"ShapeFileEditor Project Files|*.shprj"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;">
</span>openProjectDialog.Multiselect = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">False</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Dim</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> open </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> System.</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Nullable</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Of</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Boolean</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">) = openProjectDialog.ShowDialog()<o:p></o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> open = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">True</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">AndAlso</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Not</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">String</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.IsNullOrEmpty(openProjectDialog.FileName)
</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Await</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.LoadProject(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">New</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Uri</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(openProjectDialog.FileName, </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">UriKind</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.RelativeOrAbsolute))<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Sub</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Function</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> LoadProject(projectUri </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Uri</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">) </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> Task<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.busyIndicator.IsIndeterminate
= </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">True</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.busyIndicator.IsBusy = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">True</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Dim</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> info </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> ProjectInfo = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Await</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> ProjectReader.Read(projectUri,
</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Dispatcher)<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.BindProject(info)<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.busyIndicator.IsBusy = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">False</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Function</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Sub</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> BindProject(info </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> ProjectInfo)<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;">
</span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> info </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">IsNot</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Nothing</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> info.Errors.Count = 0 </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;"> </span>ProjectReader.CreateLayers(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.radMap, _</span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> info, _</span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">TryCast</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Resources(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"PointDataTemplate"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">), </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">DataTemplate</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">), </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Nothing</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.radMap.DataContext = info<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;">
</span></span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">End</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">If</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><o:p></o:p></span><br />
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">End</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Sub</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><o:p></o:p></span><br />
<br />
<br />
You can find sample solution which implements this approach on our official site at the <a href="http://www.mancosoftware.com/ShapeFileEditor/download.htm">http://www.mancosoftware.com/ShapeFileEditor/download.htm</a><br />
</div>
amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-2583447053613529802014-06-19T05:32:00.000-07:002014-06-19T05:32:17.287-07:00Version 3.0 of the Manco Shapefile Editor has been released<div dir="ltr" style="text-align: left;" trbidi="on">
Manco Shapefile Editor version 3.0 is available now. You can get 30-days trial version at the <a href="http://www.mancosoftware.com/ShapeFileEditor/download.htm">http://www.mancosoftware.com/ShapeFileEditor/download.htm</a><br />
<br />List of the most significant changes made in the new version:<br />
1. Brand new UI with a lot of improvements and enhancements:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXBvXo73w27jYo-aERIzwt8YovGVGAW4z4Tuk7vwX05Hgzw6U9sQMRhXSLXKyryk0BUcCrymaUwoJfGTh8Nl-aEjdLNznjagTzr5wjnOQyEMn_R0fbkTbj1CHpbhQbdVOOAntOwiL77jqS/s1600/MancoShapefileEditor.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXBvXo73w27jYo-aERIzwt8YovGVGAW4z4Tuk7vwX05Hgzw6U9sQMRhXSLXKyryk0BUcCrymaUwoJfGTh8Nl-aEjdLNznjagTzr5wjnOQyEMn_R0fbkTbj1CHpbhQbdVOOAntOwiL77jqS/s1600/MancoShapefileEditor.png" height="315" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
2. Predefined shape libraries. For your convenience the shapes which can be placed over the map are organized into the libraries. You can use existing libraries of the shapes or create your own for particular tasks. For example, you can create shape library for floor plan which will include typical elements like doors, windows, tables, chairs and so on.<br />
<br />
3. Deep integration with Telerik RadMap control. Projects created with Manco Shapefile Editor can be easily loaded into the RadMap control in your application. </div>
amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-3252429624324210072014-02-14T03:52:00.002-08:002014-02-14T03:52:52.820-08:00How to use the evaluation Unlock Key<div dir="ltr" style="text-align: left;" trbidi="on">
In the past we had several discussions with our customers about how they control distribution of the evaluation license on “1 customer – 1 evaluation license” basis. Most common licensing schema supposes that evaluation license is included into the product distribution. But in this case when somebody wants to evaluate the product it is not enough to simple download and run it. Client should contact with developer and obtain evaluation license. <br />
<br />It was possible with previous versions of the Manco .NET Licensing System product but it required distribution of the license file. This method made some additional problems with subsequent distribution of the retail license, especially when “Unlock Key with Activation” licensing schema is used. <br />
<br />We significantly simplified this process in the version 8.1 of the Manco .NET Licensing System by introducing so-called “Evaluation Unlock Key”. Using this new feature you can distribute license file with your application just as it is for “Unlock Key” or “Unlock Key with Activation” licensing schemas. When customer ask for the evaluation license you send an Evaluation Unlock Key which can be bound to the PC hardware (activated) the same way as it works with “Unlock Key with Activation” licensing schema. When customer asks for Retail license you simple send another Unlock Key which replace evaluation one.<br />
<br />In this article I’ll describe how the “Evaluation Unlock Key” licensing schema can be implemented. I suppose that you have read “Quick Start” and “Using of the online product activation” sections in our documentation, because this document describes differences for this approach.<br />
<br />First of all you should add {T} format string into the Unlock Key format:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii3Rheenm5ajSAmaQbiuXAXLypFrz85swT9FfVTN9G2GagXxS3TCchVtSN2ekAhNZpsbd1zd_LK07wkr8GqWn87DUHQwhxu0olcjKn8NoYBUAGrZkY9ElkjiaAzSSxterXgHULX9yfI2ev/s1600/VersionEvaluationUnlockKey.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii3Rheenm5ajSAmaQbiuXAXLypFrz85swT9FfVTN9G2GagXxS3TCchVtSN2ekAhNZpsbd1zd_LK07wkr8GqWn87DUHQwhxu0olcjKn8NoYBUAGrZkY9ElkjiaAzSSxterXgHULX9yfI2ev/s1600/VersionEvaluationUnlockKey.png" height="373" width="400" /></a></div>
The {T} format indicates that type of the Unlock Key (Evaluation or Retail), type of the evaluation rule (“Expiration Days”, “Expiration Date” or “Expiration Runs”), value of the expiration rule, and value of the “Override ID” rule will be included to the Unlock Key (will be encrypted).<br />
<br />Now you should create License Type that will allow your application operate as you desire: application will request Unlock Key on start. Depends on the Unlock Key type (Evaluation or Retail) application will run on evaluation or fully functional mode. <br />
<br />This is good known license type which we call “Unlock Key”. To create new license type click expand button on the “Add License Type” toolbar button. You will see list of the predefined license types:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiePR9q95Dz_yHmlr48RM3IxZTaZGF0-jsId0HRxDEVEiiP_uK0PELewfi4N23po-IIVBTeuRmG5WZLOWJYuG6b_1RXGwsh04lUuGBkQ-WiIOC3biIfSO33VUOQeJKp5q91EhLdh2oD2Qgq/s1600/PredefinedLicenseTypeEvaluationUnlockKey.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiePR9q95Dz_yHmlr48RM3IxZTaZGF0-jsId0HRxDEVEiiP_uK0PELewfi4N23po-IIVBTeuRmG5WZLOWJYuG6b_1RXGwsh04lUuGBkQ-WiIOC3biIfSO33VUOQeJKp5q91EhLdh2oD2Qgq/s1600/PredefinedLicenseTypeEvaluationUnlockKey.png" /></a></div>
<br /><br />
Select “Unlock Key with Activation + Evaluation Unlock Key” license type. New license type will be created. It includes following rules:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8D4PRWB1p6GcajeiYCo0OJ2VgfTiJqVfZ7njjaVOoIYwkKoroPuCXfls403ttImxl_RzWnA7RAqa36hplBzKIxdZP_oGnD2Bj4thNDb08yZ3FJpkbGoWa_all7WVcYjX3V9eiU-nI-_UC/s1600/EvaluationUnlockKeyWithActivation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8D4PRWB1p6GcajeiYCo0OJ2VgfTiJqVfZ7njjaVOoIYwkKoroPuCXfls403ttImxl_RzWnA7RAqa36hplBzKIxdZP_oGnD2Bj4thNDb08yZ3FJpkbGoWa_all7WVcYjX3V9eiU-nI-_UC/s1600/EvaluationUnlockKeyWithActivation.png" /></a></div>
<br />
<br />
<strong>Activation Key</strong> – indicates that activation key created using PC system info and unlock key (ether in automatic or manual mode) should be entered to get product fully functional.<br />
<br /><strong>AWS Allow Deactivation</strong> – AWS check whether this rule is included to the license type when customer’s application calls "DeactivateProduct" web-method. If it is so, then Deactivate method works.<br />
<br /><strong>Expiration Days</strong> – set number of days during which your product will work in evaluation mode. This license rule can be used to create evaluation. When someone attempts use licensed product after given number of days it will give “Your license has been expired” exception. <br />
<br /><strong>Is Evaluation</strong> – indicates, that license is in evaluation mode. Allows you limit some functionality in your product using evaluation status of license.<br />
<br /><strong>Unlock Key</strong> – including of this validation rule to the base license file allows you using of the “Unlock Key” schema to activate product. It informs protection library that Unlock Key provided by customer should be validated. <br />
<br /><strong>Use evaluation key</strong> – indicates whether the protection library must check availability of the Unlock Key and test it state (Evaluation or Retail).<br />
<br /><strong>Write Key To File</strong> – indicates whether the “Unlock Key” should be written to the protected storage after validation. If you don’t use this rule, then customer will be asked for Unlock Key every time when your application starts. <br />
<br />As usual now you should create license file. Pay attention, with this approach license doesn’t operate as evaluation license, but just contains set of the rules which handle behavior of the protection library. Here it is screenshot of the sale window for the license file:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1SdUmjpzN-XT5UpJ2zCPRBPwJcLzmTqvZNMjrIrHgtwww92UKuWN5BuzaIU-6KrFRZb1TXvJXgRqkAjvokqeU6c4ZPfjy5gGTCPLp-okR-DGq3IIcl9wBPv2IntuBp37S8lWfxWVDxC50/s1600/EvaluationUnlockKeyLicenseFile.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1SdUmjpzN-XT5UpJ2zCPRBPwJcLzmTqvZNMjrIrHgtwww92UKuWN5BuzaIU-6KrFRZb1TXvJXgRqkAjvokqeU6c4ZPfjy5gGTCPLp-okR-DGq3IIcl9wBPv2IntuBp37S8lWfxWVDxC50/s1600/EvaluationUnlockKeyLicenseFile.png" height="321" width="400" /></a></div>
<br />
<br />
Pay attention, the “Is Evaluation” checkbox must be unchecked, and “Expiration Days” and “Unlock Key” fields must be empty.<br />
<br />The code for this licensing schema isn’t different much from one is used for the “Unlock Key with Activation” licensing schema. You just should keep in mind that old Unlock and Activation keys can be cleaned from the protected storage when new ones have been entered only:<br />
<br />
<strong>C#</strong><br />
<strong></strong><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">bool</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> RequestKeys()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Check if the current
license is evaluation license or not valid</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (!</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsValid || </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsEvaluation)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// This is evaluation or not
valid license, </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// so we should show
evaluation dialog </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">EvaluationWindow</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> evaluationWindow = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">new</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">EvaluationWindow</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>evaluationWindow.Owner
= </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">;</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (evaluationWindow.ShowDialog() ==
</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">true</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>&&
evaluationWindow.UnlockKey.Trim() != </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">string</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Empty</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>&&
evaluationWindow.ActivationKey.Trim() != </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">string</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Empty)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Check whether license
REQUIRE the calling of the AWS</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// and it has been called
from the license form.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (evaluationWindow.IsAwsCalled </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span>||
!</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseProperties.DoForceValidation)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// License information have
been entered.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Pass it to the license
object for the</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// following validation.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.ClearUnlockKeys();</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.UnlockKey =
evaluationWindow.UnlockKey;</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.ActivationKey =
evaluationWindow.ActivationKey;</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">else</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"You must
click 'Activate' button on the evaluation form"</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>+
</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"to activate
your copy of the product on this PC."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span>}</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">return</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsValid</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>&&
!(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsEvaluation </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 35.4pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">&& </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsEvaluationExpired);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">}<o:p></o:p></span></div>
<br />
<br />
<strong>VB.NET</strong><br />
<br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Function</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> RequestKeys() </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Boolean</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Check if the current
license is evaluation license or not valid</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Not</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsValid _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 35.4pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">OrElse</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsEvaluation </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 35.4pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' This is evaluation or not valid
license, </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 35.4pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' so we should show evaluation
dialog </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 35.4pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Dim</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> evaluationWindow </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">New</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">EvaluationWindow</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 35.4pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">evaluationWindow.Owner = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 35.4pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> evaluationWindow.ShowDialog() = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">True</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 70.8pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">AndAlso</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> evaluationWindow.UnlockKey.Trim()
<> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">String</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Empty _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 70.8pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">AndAlso</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">
evaluationWindow.ActivationKey.Trim() <> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">String</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Empty </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 70.8pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Check whether license REQUIRE
the calling of the AWS</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 70.8pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' and it has been called from the
license form.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 70.8pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> evaluationWindow.IsAwsCalled _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">OrElse</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Not</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseProperties.DoForceValidation
</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' License information have been
entered.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Pass it to the license object
for the</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' following validation.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.ClearUnlockKeys()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.UnlockKey =
evaluationWindow.UnlockKey</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.ActivationKey =
evaluationWindow.ActivationKey</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 70.8pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Else</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"You must click 'Activate'
button on the evaluation form"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 141.6pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">& </span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"to activate your copy of the
product on this PC."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 70.8pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 35.4pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Return</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsValid _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">AndAlso</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Not</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsEvaluation _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">AndAlso</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsEvaluationExpired)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Function</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></div>
<br />
<br />
Finally here are the screenshots of the sale records for the evaluation and retail Unlock Keys.<br />
<br />
<strong>Evaluation</strong><br />
<strong></strong><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3IzTP1-cIXDca2f8rhIjuzs8zemiogxn-j_M54wNFtXMhLQ6wWHh39vXZuYgyFLsUGXt6ThkjlAsFdYynv-hKoSBS4Uw8gCCnkFJ7JzeQct6jBaSqHN4nQKADCAxjZYNOSMbgsxxNJfNT/s1600/EvaluationUnlockKeyEvaluation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3IzTP1-cIXDca2f8rhIjuzs8zemiogxn-j_M54wNFtXMhLQ6wWHh39vXZuYgyFLsUGXt6ThkjlAsFdYynv-hKoSBS4Uw8gCCnkFJ7JzeQct6jBaSqHN4nQKADCAxjZYNOSMbgsxxNJfNT/s1600/EvaluationUnlockKeyEvaluation.png" height="228" width="400" /></a></div>
<br />
<br />
When customer asks you for the evaluation license you create new sale records, check “Is Evaluation” check box, set number of the expiration days and then generate Unlock Key. Send new key to the customer for activation. After activation customer will be able to evaluate your product during specified time frame. Pay attention, you must check “Is Evaluation” and set value for the “Expiration Days” field <strong>before</strong> Unlock Key generation.<br />
<strong>Retail</strong><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeLupzrvyvEMG4LNmmKMJ14SaYceM6LTrNHllfnqsYV_KNOYAh8lIq3sgHHQWFlVoQ_JbZxQ6hAJrkEYrzRnHBJ-mP5cxFj0zP1I9VtBzJIWQbz0ymhlf1NY4kkiF47n6jAqLj_eWou14g/s1600/EvaluationUnlockKeyRetail.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeLupzrvyvEMG4LNmmKMJ14SaYceM6LTrNHllfnqsYV_KNOYAh8lIq3sgHHQWFlVoQ_JbZxQ6hAJrkEYrzRnHBJ-mP5cxFj0zP1I9VtBzJIWQbz0ymhlf1NY4kkiF47n6jAqLj_eWou14g/s1600/EvaluationUnlockKeyRetail.png" height="228" width="400" /></a></div>
<br />
<br />
Pay attention, for the retail license you must uncheck “Is Evaluation” checkbox and left “Expiration Days” field empty.<br />
<br />
You can find sample solution which demonstrates using of the Evaluation Unlock Key on our official site at <a href="http://www.mancosoftware.com/licensing/download.htm">http://www.mancosoftware.com/licensing/download.htm</a> </div>
amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-28567410868090079092013-09-15T02:35:00.003-07:002013-09-15T02:35:49.505-07:00How to protect several binaries using 1 license file<div dir="ltr" style="text-align: left;" trbidi="on">
It is not quite common scenario but I’ve been asked several times in the past whether several binaries (EXEs and DLLs) can be protected using 1 license file. For example, your product consists of the several executable files which should share same licensing information. The answer is: yes, it is possible, and it is easy to implement.<br />
<br />Let me show how it can be done. Suppose our product consist of the 2 separate executable files: FirstUtility.exe and SecondUtility.exe which are presented by 2 different projects in the Visual Studio:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhENpEWzdYbaFJJ-aTS5QP5gaStjJn6uTb2nFzhsSCxMVcaXRgF4dQTVZhh0Nfp46BzPMtAMNotX8ncelrDBJZ9rnLV5D39Y9IDGwi9ttDYNONbekt5GB1-sY5-aMeE_iJz-1n3fGL_9GTR/s1600/ProjectWith2Executables.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhENpEWzdYbaFJJ-aTS5QP5gaStjJn6uTb2nFzhsSCxMVcaXRgF4dQTVZhh0Nfp46BzPMtAMNotX8ncelrDBJZ9rnLV5D39Y9IDGwi9ttDYNONbekt5GB1-sY5-aMeE_iJz-1n3fGL_9GTR/s1600/ProjectWith2Executables.png" /></a></div>
<br /><br />
We would like to add license protection to both projects and licensing information should be shared between these 2 projects. Unfortunately we can’t simple share same license file between 2 projects because both executable files are signed and use own assembly information. In this case the license will not pass product name/version/signature validation. But we can achieve our goals using another way:<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
1. Add new class library to your solution. Name it, for example, SharedLicenseProtection:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF-bkxhfPbPO5UDqe6QsMuaaKvxh1iKad_lXSyZkiymZ9JMnRaTob8VTBHxaEt7zkmT4QfuGwb_cRkk_pzHLn06llhb6-irnY78B_kpYN6lusmvPHjNBxQWmA4ZteEgi79CfqIf4o2GexH/s1600/SharedLicenseProtectionProject.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF-bkxhfPbPO5UDqe6QsMuaaKvxh1iKad_lXSyZkiymZ9JMnRaTob8VTBHxaEt7zkmT4QfuGwb_cRkk_pzHLn06llhb6-irnY78B_kpYN6lusmvPHjNBxQWmA4ZteEgi79CfqIf4o2GexH/s1600/SharedLicenseProtectionProject.png" /></a></div>
<br />
<br />2. Add reference to the Manco.Licensing.dll into all projects in your solution.<br />
<br />3. Add reference to the SharedLicenseProtection project into the FirstUtility and SecondUtility projects.<br />
<br />4. Add class which will implement license protection (SharedLicense, for example) to the SharedLicenseProtection project. Left it empty for a while.<br />
<br />5. Build your solution to create SharedLicenseProtection.dll.<br />
<br />6. Run License Manager and import product definition from the SharedLicenseProtection.dll. Pay attention, the protected assembly in the version definition will be SharedLicenseProtection (not the FirstUtility or the SecondUtility):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlQQcjwzRNyLvUjYLPvncpjJoW2LpCtpKmYsM1GEL5FVtOvl1T0VTJ7mYerZVumkFAMy5PETkHZuk3efu_eXFMb1QT3dJxGxA1RyXZq1zs4Eq2sFlbZE-sj18aSt7rVSao_DJoJZyzc97G/s1600/VersionSharedLicenseProtection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlQQcjwzRNyLvUjYLPvncpjJoW2LpCtpKmYsM1GEL5FVtOvl1T0VTJ7mYerZVumkFAMy5PETkHZuk3efu_eXFMb1QT3dJxGxA1RyXZq1zs4Eq2sFlbZE-sj18aSt7rVSao_DJoJZyzc97G/s1600/VersionSharedLicenseProtection.png" /></a></div>
<br /><br />7. Add license type which corresponds to your license protection requirements. In our sample we will use simple “Unlock Key” licensing schema extended with “Product Edition” rule to implement an ability to turn on/off first and second utility separately using product feature list (see instructions in the “Manage application’s feature list using Product Edition” topic). We change format of the “Unlock Key” to support feature list as well (see screenshot above).<br />
<br />8. Create custom control to edit feature list (see instructions in the “Manage application’s feature list using Product Edition” topic).<br />
<br />9. Change the SharedLicense class to implement ILicenseKeyProvider interface (see details in the product documentation, topic “Quick start using ‘Unlock Key’ licensing schema):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP_hYOOwaXgNUQXUFovABZjij_TWrlx7UUM-CE-ceG4fLo-jQXS6huOqS9khLrNhEirEevYfghPTJ2OtSYUKlD-OPmX__7ZTFQEq_p7ZSTcPzEt0jfhD0GnPmfj4fWZ_oC8O2VA-wEhXlA/s1600/SharedLicenseClassInterfaceImplemented.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP_hYOOwaXgNUQXUFovABZjij_TWrlx7UUM-CE-ceG4fLo-jQXS6huOqS9khLrNhEirEevYfghPTJ2OtSYUKlD-OPmX__7ZTFQEq_p7ZSTcPzEt0jfhD0GnPmfj4fWZ_oC8O2VA-wEhXlA/s1600/SharedLicenseClassInterfaceImplemented.png" /></a></div>
<br /><br />10. Create evaluation license file and add it to the SharedLicenseProtection project (see details in the product documentation, topic “Quick start using ‘Unlock Key’ licensing schema).<br />
<br />11. The SharedLicense class should load license file and instantiate license properties. As usual we do it in the class constructor. In this scenario we want to validate integrity of the calling assembly. We will pass assembly and public key information as parameters of the class constructor. We also need access to the license object outside of the SharedLicense class. So we add License property to it. Finally SharedLicense class could looks like the following:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnHF3R4KR_e7gq-TNF3l9XlMz8_t-C24c9P6H0-8wi55eBM5lThCtdCeY4bPe9HK7ylRY5XaPLC7UKxoRFHKqjIsKiTys-qUrV7M7zuV6DGkzQpNUGs8xqDjz9Jxhs8iujF_ZH4gkI7PHq/s1600/SharedLicenseClass.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnHF3R4KR_e7gq-TNF3l9XlMz8_t-C24c9P6H0-8wi55eBM5lThCtdCeY4bPe9HK7ylRY5XaPLC7UKxoRFHKqjIsKiTys-qUrV7M7zuV6DGkzQpNUGs8xqDjz9Jxhs8iujF_ZH4gkI7PHq/s1600/SharedLicenseClass.png" /></a></div>
<br /><br />12. Now we can use SharedLicense class in the First and Second utilities. The scenario is absolutely similar to the standard approach. The difference is that instead of instantiating of the Manco.Licensing.License object we create object of the SharedLicense type and use its License property.<br />
<br />You can find sample solution which implements this approach on our official site at the <a href="http://www.mancosoftware.com/licensing/download.htm">http://www.mancosoftware.com/licensing/download.htm</a> </div>
amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-53566824206345688372013-07-28T02:04:00.000-07:002013-07-28T02:04:09.394-07:00Protect Windows Store Application using Unlock Key with Activation licensing schema<div dir="ltr" style="text-align: left;" trbidi="on">
Version 8.0 of the Manco .NET Licensing System supports license protection of the .NET Windows Store Applications. It provides separate protection library which can be used with this kind of applications.<br />
<br />I suppose that you have read section “Online product activation” in our product documentation already. So I describe only things are specific for the Windows Store Application in this article. <br />
<br />First of all you should keep in mind that Windows Store Application has not access to the traditional protected storage locations are used by our system in .NET Framework applications: Windows Registry and IsolatedStorage. So protection library uses another approach in this case. To make it possible for License Manager to clear protected storage you should inform it that this is Windows Store Application:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVy3DFKq-sBHDVBmju7quw6PDmCLAcPTVDC1vEW7Lot9MWpHtexkfxlqxYieydnLrSOCWeLIGr1f2iIb-cwRA1v8tfcjaPc-LakdetTixhtuxshrqFXpYFMzmQEu2Pvc6Hcj5fhWs0m9SA/s1600/VersionWindowsStoreApplication.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="381" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVy3DFKq-sBHDVBmju7quw6PDmCLAcPTVDC1vEW7Lot9MWpHtexkfxlqxYieydnLrSOCWeLIGr1f2iIb-cwRA1v8tfcjaPc-LakdetTixhtuxshrqFXpYFMzmQEu2Pvc6Hcj5fhWs0m9SA/s400/VersionWindowsStoreApplication.png" width="400" /></a></div>
<br />
<br />
Next, you should use special edition of the protection library designed for the Windows Store Applications. You can find it here: in the InstallationPath/DLL/WinStore/Manco.Licensing.dll where InstallationPath depends on your OS:<br />
<div>
</div>
<ol style="text-align: left;">
<li>For 32-bits OS it is “C:\Program Files\Manco Software\Manco .NET Licensing System”.</li>
<li>For 64-bits OS it is “C:\Program Files (x86)\Manco Software\Manco .NET Licensing System”.</li>
</ol>
<br />The next difference is the asynchronous nature of the Windows Store Application. To call Activation Web Service you should use asynchronous calls provided with AwsHelper class. For example, to activate license you can use following method:<br />
<br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">C#<o:p></o:p></span></span></b></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">async</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">void</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> ActivateLicense(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">object</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> sender, </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">RoutedEventArgs</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> e)<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// If "Unlock Key"
has been entered</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.UnlockKey.Trim() != </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">string</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Empty)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">string</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> message = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">null</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">;<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Pass "Unlock
Key" to the license object</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.UnlockKey = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.UnlockKey.Trim();<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">AwsHelper</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> helper = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">new</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">AwsHelper</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license, <o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">MainPage</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">.ActivationServiceUrl);<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">try</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">string</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> activationKey = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">await</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> helper.ActivateProductGetKeyAsync(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">false</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">);<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (!</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">string</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.IsNullOrEmpty(activationKey))<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// AWS has been called</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span>m_bAWSCalled
= </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">true</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span>txtActivationKey.Text
= activationKey;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">await</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MainPage</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.ShowMessage(<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span></span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Activation
Key has been succesfully"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>+
</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">" generated
and passed to the text box."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>+
</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">" Click OK
to continue."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">catch</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Exception</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> exc)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>message
= </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MainPage</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.ProcessException(exc);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>}<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (!</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">string</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.IsNullOrEmpty(message))<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">await</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MainPage</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.ShowMessage(message);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">else</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">await</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MainPage</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.ShowMessage(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Enter
Unlock Key to be able activate product"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">}<o:p></o:p></span><br />
<span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">}<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">VB.NET<o:p></o:p></span></span></b></div>
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Async</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Sub</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> ActivateLicense(sender </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Object</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">, e </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">RoutedEventArgs</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' If "Unlock Key"
has been entered</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.UnlockKey.Trim() <> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">String</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Empty </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Dim</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> message </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">String</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Nothing</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Pass "Unlock
Key" to the license object</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.UnlockKey = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.UnlockKey.Trim()<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Dim</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> helper </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">AwsHelper</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">New</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">AwsHelper</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">( _<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license, _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MainPage</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.ActivationServiceUrl)<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Try</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Dim</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> activationKey </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">String</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Await</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">
helper.ActivateProductGetKeyAsync(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">False</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Not</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">String</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.IsNullOrEmpty(activationKey) </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' AWS has been called</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span>m_bAWSCalled
= </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">True</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span>txtActivationKey.Text
= activationKey<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Await</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MainPage</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.ShowMessage( _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span></span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Activation
Key has been succesfully"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>&
</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">" generated
and passed to the text box."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>&
</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">" Click OK
to continue."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Catch</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> exc </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Exception</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>message
= </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MainPage</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.ProcessException(exc)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Try</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Not</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">String</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.IsNullOrEmpty(message) </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Await</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MainPage</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.ShowMessage(message)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Else</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Await</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MainPage</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.ShowMessage(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Enter
Unlock Key to be able activate product"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Sub</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<br />
<br />
You can find sample solution which demonstrates protection of the Windows 8 Store Application on our official site at <a href="http://www.mancosoftware.com/licensing/download.htm" target="_blank">http://www.mancosoftware.com/licensing/download.htm </a><br />
<br />
<br /> </div>
amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-73146763775801962112013-07-03T23:24:00.001-07:002013-07-03T23:24:30.366-07:00Version 2.0 of the Manco Shapefile Editor has been released<div dir="ltr" style="text-align: left;" trbidi="on">
Manco Shapefile Editor version 2.0 is available now. You can get 30-days trial version at the <a href="http://www.mancosoftware.com/ShapeFileEditor/download.htm" target="_blank">http://www.mancosoftware.com/ShapeFileEditor/download.htm</a><br />
<br />
List of the most significant changes made in the new version:<br />
<br />
<ol>
<li>KML export/import.</li>
<li>Mixed layers. Layers with the mixed shape types (e.g. Points, lines, polygons in the same layer). Mixed layers can be split. And also can be saved not only as a KML but also as a Shape file by auto-splitting.</li>
<li>Creating, editing and saving of the complex shapes.</li>
<li>Opening background pictures in given coordinates.</li>
<li>Creating shape layers from the background layers in given coordinates.</li>
<li>Shape rotation.</li>
<li>Shape resize.</li>
<li>Functional toolbar.</li>
<li>Rulers.</li>
</ol>
</div>
amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-47530515334120332672013-06-17T22:57:00.000-07:002013-07-03T23:23:52.594-07:00Version 8.0 of the Manco .NET Licensing System has been released<div dir="ltr" style="text-align: left;" trbidi="on">
Manco .NET Licensing System version 8.0 is available now. You can get 15-days trial version at the <a href="http://www.mancosoftware.com/licensing/download.htm" target="_blank">http://www.mancosoftware.com/licensing/download.htm</a><br />
<br />
List of the most significant changes made in the new version:<br />
<br />
<ol style="text-align: left;">
<li>Created protection library for .NET Windows 8 Store Applications.</li>
<li>Simplified implementation of the license protection in the customer's applications. Eliminated using of the LicenseProvider attribute and LicenseManager.Validate call in the protected class. The ILicenseKeyProvider can be implemented in any class in the project. The instance of the License class can be created as simple as “License license = new License(keyProvider);”. </li>
<li>Changed license file signature method. Pay attention, the new protection library can’t use license files created by License Manager (or License Shop) version 7.1 and early. But License Manager version 8.0 can creates license files for new protection library as well as for the early versions.</li>
<li>Protection libraries for the medium trust environment are included into the distribution.</li>
<li>New web-method added to the Activation Web Service. This method allows send requests for license activation/validation and gets responses in the encrypted form. For additional security the AWS response data is stamped with Date and Time and signed. Currently following operations are supported: product activation, product deactivation, get customer information, check license existence and online license validation.</li>
<li>New class AwsHelper has been added to the protection library. It simplifies communication of your application with Activation Web Service using encrypted interface. This class provides methods for the synchronous calls as well as for the asynchronous calls. The asynchronous calls are implemented using Task Framework which makes possible using of the async/await style programming in .NET Framework 4.5 applications.</li>
<li>Added ability to specify which custom values should be copied when upgrade license to the new version of the product. For example, "CryptoKey" shouldn't be copied, because in the most cases it is version (or license type) specific.</li>
<li>License Manager and Protected Storage Cleaner are able to clear protected storage for the Windows 8 Store Applications.</li>
<li>Added ability to see all purchases for the customer.</li>
<li>Added ability to see all activations for the single purchase.</li>
<li>Added ability to specify which control should be used to edit custom value.</li>
</ol>
</div>
amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-54240269259547534562013-06-09T21:48:00.001-07:002013-06-09T21:48:58.498-07:00Version 4.5 of the Manco .NET Obfuscator has been released<div dir="ltr" style="text-align: left;" trbidi="on">
Version 4.5 of the Manco .NET Obfuscator has been released. New version supports obfuscation of the .NET Windows Store applications (as well as .NET Framework 2.0, 3.0, 3.5, 4.0, 4.5 and .NET Compact Framework 2.0 and 3.5).</div>
amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-17680794713899071912013-01-05T00:47:00.000-08:002013-01-16T03:11:43.846-08:00Using of the custom profile to activate license against e-Mail address<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">Often our
customers ask whether it is possible to use e-Mail address instead of PC
hardware information for license activation. I would say that from my point of
view using of the e-Mail address isn’t as secure as using of the hardware
profile, but answer is “yes, you can use e-Mail address for license
activation”. In this post I’ll describe how you can use “Custom Profile”
feature for these purposes.<o:p></o:p></span></span></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">I suppose
you’ve read following topics in the Manco .NET Licensing System documentation:<o:p></o:p></span></span><br />
<br />
<div class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">1.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">Quick start using “Unlock Key”
licensing schema.</span></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">2.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">Online product activation.</span></span></div>
<div class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;"><span style="font-family: Calibri;">3.</span><span style="font-size-adjust: none; font-stretch: normal; font: 7pt/normal "Times New Roman";"> </span></span></span><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">Include custom information to the PC
profile.<o:p></o:p></span></span></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">Product
documentation is a part of the installation package (you can get it here: </span></span><a href="http://www.mancosoftware.com/licensing/download.htm" target="_blank"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="color: blue; font-family: Calibri;">http://www.mancosoftware.com/licensing/download.htm</span></span></a><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">). After installation you can find
product documentation in the Windows Start menu at the “All Programs->Manco
Software->Licensing System”, file name is “Manco .NET Licensing System –
Documentation.pdf”. It contains about 220 pages with different aspects of using
of our system.<o:p></o:p></span></span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">Using
“Custom Profile” feature you can add custom information to the PC profile, or
even completely replace it with your own value. To do it you have to use
CustomProfileMode and CustomProfile properties of the license object. The
CustomProfileMode property sets value which indicates how the custom profile
will be combined with system information. It can have following values:<o:p></o:p></span></span></div>
<br />
<ol style="margin-top: 0cm;" type="1">
<li class="MsoNormal" style="margin: 0cm 0cm 10pt; mso-list: l1 level1 lfo2;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">None – indicates that custom profile will
not be used.</span></span><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">Combine – indicates that custom profile
will be added to the hardware information.</span></span></li>
<li class="MsoNormal" style="margin: 0cm 0cm 10pt; mso-list: l1 level1 lfo2;"><span lang="EN-US" style="font-family: "Calibri","sans-serif"; font-size: 11pt; line-height: 115%; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Combine
– indicates that custom profile will be added to the hardware information.</span></li>
<li class="MsoNormal" style="margin: 0cm 0cm 10pt; mso-list: l1 level1 lfo2;"><span lang="EN-US" style="mso-ansi-language: EN-US;"></span><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">Override – indicates that custom profile
will override hardware information.</span></span></li>
</ol>
<div class="MsoNormal" style="margin: 0cm 0cm 10pt; mso-list: l1 level1 lfo2;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"></span><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"></span></span> </div>
<div class="MsoNormal" style="margin: 0cm 0cm 10pt; mso-list: l1 level1 lfo2;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">The
CustomProfile property sets value which will be used as custom profile.</span></span></div>
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">Since we
would like to use customer’s e-Mail address for license activation we should
override PC system information with e-Mail address. So we should set
CustomProfileMode to the “Override” and put e-Mail address to the CustomProfile.
We also should provide an application with ability to store entered e-Mail
address. We can use license custom value for these purposes. <o:p></o:p></span></span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">Here are
the changes we should make in the basic code of the “Unlock Key with Activation”
licensing schema to be able to activate license against e-Mail address:<o:p></o:p></span></span></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><strong>[C#]<o:p></o:p></strong></span></span></div>
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">public</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> MainWindow()<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span>InitializeComponent();<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Instantiate license
object and assign assemblies for validation.</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license = (Manco.Licensing.</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">License</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">LicenseManager</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Validate(<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">typeof</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MainWindow</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">), </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.LicensedAssembly = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">typeof</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MainWindow</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">).Assembly;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// We
will override PC profile with custom value.</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></b><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.CustomProfileMode = </span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">CustomProfileMode</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Override;<o:p></o:p></span></b><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span></b><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">//
Read e-Mail address from the custom license value</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></b><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">//
and use it as custom PC profile.</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></b><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.CustomProfile = </span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.GetCustomValue(</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"EMailAddress"</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">);<o:p></o:p></span></b><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseProperties = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.GetLicenseProperties();<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.GetLicenseState(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">true</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">);<o:p></o:p></span><br />
<span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">}<o:p></o:p></span><br />
<span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: Calibri;"> </span></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">void</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> MainWindow_Loaded(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">object</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> sender, </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">RoutedEventArgs</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> e)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Check if the current
license is evaluation license or not valid</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsEvaluation || !</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsValid)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// This is evaluation or not
valid license, </span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// so we should show
evaluation dialog </span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Clear saved keys to allow
enter all keys from the scratch.</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>license.ClearUnlockKeys();<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">EvaluationWindow</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> loForm = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">new</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">EvaluationWindow</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(license);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>loForm.Owner
= </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (loForm.ShowDialog() == </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">true</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>&&
loForm.UnlockKey.Trim() != </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">string</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Empty<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>&&
loForm.ActivationKey.Trim() != </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">string</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Empty)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Check whether license
REQUIRE the calling of the AWS</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// and it has been called
from the license form.</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (loForm.IsAwsCalled || !</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseProperties.DoForceValidation)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// License information have
been entered.</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Pass it to the license
object for the</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// following validation.</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span>license.UnlockKey
= loForm.UnlockKey;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span>license.ActivationKey
= loForm.ActivationKey;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Save entered e-Mail address for the future using.</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></b><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.SetCustomValue(</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"EMailAddress"</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">, <o:p></o:p></span></b><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>loForm.EMailAddress);<o:p></o:p></span></b><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">else</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"You must
click 'Activate' button on the valuation form"</span><br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>+
</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"to activate
your copy of the product on this PC."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">);<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>}<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>}<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">else</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsEvaluationExpired)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// The evaluation license
has been expired and </span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// no license information
have been entered, </span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// so we should close
application.</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Application</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Current.Shutdown();<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">return</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// ... </span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">}<o:p></o:p></span><br />
<span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: Calibri;"> </span></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">void</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> ActivateLicense(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">object</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> sender, </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">RoutedEventArgs</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> e)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// If "Unlock Key"
has been entered</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (!</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">string</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.IsNullOrEmpty(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.UnlockKey)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>&&
!</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">string</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.IsNullOrEmpty(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.EMailAddress))<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Pass "Unlock
Key" to the license object</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.UnlockKey = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.UnlockKey;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">//
Pass e-Mail address as custom profile.</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></b><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.CustomProfile = </span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.EMailAddress;<o:p></o:p></span></b><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Get instance of the
Activation Service</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">TimeSpan</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> loAWSTimeout = </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">TimeSpan</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.FromSeconds(120);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>ActivationWebService.</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">ActivationServiceSoapClient</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> loAWSClient =<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">AwsHelper</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.InitializeAwsClient(<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"http://localhost/ActivationService/ActivationService.asmx"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">,<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">loAWSTimeout,<o:p></o:p></span><br />
<span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>loAWSTimeout);<o:p></o:p></span><br />
<span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">try</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><o:p></o:p></span><br />
<span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>{<o:p></o:p></span><br />
<span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">bool</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> isActivated;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (loAWSClient.LicenseExists(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.ProductID, </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">out</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> isActivated))<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Get product ID from the
license and try to activate it</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Instruct AWS do NOT send
copy of the key to the </span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// customer's e-Mail</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">string</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> lsActivationKey = <o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 4;"> </span>loAWSClient.ActivateProductGetKey(<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">this</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.ProductID, </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">false</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (lsActivationKey != </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">null</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// AWS has been called</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>m_bAWSCalled
= </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">true</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>txtActivationKey.Text
= lsActivationKey;<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Activation
Key has been succesfully"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 6;"> </span>+
</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">" generated
and passed to the text box."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 6;"> </span>+
</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">" Click OK
to continue."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">catch</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">SoapException</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> exc)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">if</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (exc.Message.Contains(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Manco.Licensing.ActivationWebService.Exceptions.AllowedActivationsExceededException"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">))<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">// Process
AllowedActivationsExceededException</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Number of
the allowed activations exceeded."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">else</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Exception
during activation:\n"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> + exc.ToString));<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">catch</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> (</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Exception</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> exc)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Exception
during activation:\n"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> + exc.ToString());<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">else</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span>{<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Enter
Unlock Key and e-Mail address to be able activate product"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">);<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span>}<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">}<o:p></o:p></span><br />
<span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: Calibri;"> </span></o:p></span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><strong>[VB.NET]<o:p></o:p></strong></span></span></div>
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Public</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Sub</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">New</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">()<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span>InitializeComponent()<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Instantiate license object
and assign assemblies for validation.</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">DirectCast</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">LicenseManager</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Validate(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">GetType</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MainWindow</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">), </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">), Manco.Licensing.</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">License</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.LicensedAssembly = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">GetType</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MainWindow</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">).Assembly<o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' We
will override PC profile with custom value.</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></b></div>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.CustomProfileMode = </span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">CustomProfileMode</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Override<o:p></o:p></span></b><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">'
Read e-Mail address from the custom license value</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></b></div>
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' and
use it as custom PC profile.</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></b><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.CustomProfile = </span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.GetCustomValue(</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"EMailAddress"</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span></b><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseProperties = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.GetLicenseProperties()<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.GetLicenseState(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">True</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">End</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Sub</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: Calibri;"> </span></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Sub</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> MainWindow_Loaded(sender </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Object</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">, e </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">RoutedEventArgs</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Check if the current
license is evaluation license or not valid</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsEvaluation </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">OrElse</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Not</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsValid </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' This is evaluation or not
valid license, </span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' so we should show
evaluation dialog </span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Clear saved keys to allow
enter all keys from the scratch.</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>license.ClearUnlockKeys()<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Dim</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> loForm </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">New</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">EvaluationWindow</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">(license)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span>loForm.Owner
= </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> loForm.ShowDialog() = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">True</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span> </span></span>AndAlso</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> loForm.UnlockKey.Trim() <> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">String</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Empty _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> <span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> <span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span></span></span></span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">AndAlso</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> loForm.ActivationKey.Trim()
<> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">String</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Empty </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Check whether license
REQUIRE the calling of the AWS</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' and it has been called
from the license form.</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> loForm.IsAwsCalled _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> <span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> <span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span></span></span></span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">OrElse</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Not</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseProperties.DoForceValidation
</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' License information have
been entered.</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Pass it to the license
object for the</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' following validation.</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span>license.UnlockKey
= loForm.UnlockKey<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span>license.ActivationKey
= loForm.ActivationKey<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Save entered e-Mail address for the future using.</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></b><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.SetCustomValue(</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"EMailAddress"</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">, loForm.EMailAddress)<o:p></o:p></span></b><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Else</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"You must
click 'Activate' button on the evaluation form"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>&
</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"to activate
your copy of the product on this PC."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">ElseIf</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.licenseState.IsEvaluationExpired </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' The evaluation license has
been expired and </span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' no license information
have been entered, </span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' so we should close
application.</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Application</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Current.Shutdown()<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Return</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' ... </span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">End</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Sub</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><o:p></o:p></span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;">
<span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Private</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Sub</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> ActivateLicense(sender </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Object</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">, e </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">RoutedEventArgs</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span></div>
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' If "Unlock Key"
has been entered</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Not</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">String</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.IsNullOrEmpty(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.UnlockKey) _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> <span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span></span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">AndAlso</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Not</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">String</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.IsNullOrEmpty(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.EMailAddress) </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Pass "Unlock
Key" to the license object</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.UnlockKey = </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.UnlockKey<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">'
Pass e-Mail address as custom profile.</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span></b><br />
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.CustomProfile = </span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.EMailAddress<o:p></o:p></span></b><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p> </o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Get instance of the
Activation Service</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Dim</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> loAWSTimeout </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">TimeSpan</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> = </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">TimeSpan</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.FromSeconds(120)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Dim</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> loAWSClient </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> ActivationWebService.</span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">ActivationServiceSoapClient</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> = _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">AwsHelper</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.InitializeAwsClient( _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"http://localhost/ActivationService/ActivationService.asmx"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">, _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>loAWSTimeout,
_<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span>loAWSTimeout)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Try</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Dim</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> isActivated </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Boolean</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> loAWSClient.LicenseExists(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.ProductID, isActivated) </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Get product ID from the
license and try to activate it</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Instruct AWS do NOT send
copy of the key to the </span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' customer's e-Mail</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Dim</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> lsActivationKey </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">String</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> =
loAWSClient.ActivateProductGetKey(</span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Me</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.license.ProductID, </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">False</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> lsActivationKey </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">IsNot</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Nothing</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' AWS has been called</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>m_bAWSCalled
= </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">True</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>txtActivationKey.Text
= lsActivationKey<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Activation
Key has been succesfully"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>&
</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">" generated
and passed to the text box."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>&
</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">" Click OK
to continue."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Catch</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> exc </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">SoapException</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> exc.Message.Contains(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Manco.Licensing.ActivationWebService.Exceptions.AllowedActivationsExceededException"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">) </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Then</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">' Process
AllowedActivationsExceededException</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Number of
the allowed activations exceeded."</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Else</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 4;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Exception
during activation:"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>&
vbLf & exc.ToString())<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">If</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Catch</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> exc </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">As</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Exception</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Exception
during activation:"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> _<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 5;"> </span>&
vbLf & exc.ToString())<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">End</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"> </span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Try</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">Else</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 2;"> </span></span><span lang="EN-US" style="background: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">MessageBox</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">.Show(</span><span lang="EN-US" style="background: white; color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">"Enter
Unlock Key and e-Mail address to be able activate product"</span><span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;">)<o:p></o:p></span><br />
<span lang="EN-US" style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-highlight: white;"><span style="mso-tab-count: 1;"> </span></span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">End</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">If</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><o:p></o:p></span><br />
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">End</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">Sub</span><span style="background: white; color: black; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><o:p></o:p></span><br />
<span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: Calibri;"> </span></o:p></span><br />
<span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">You can
find sample solution which demonstrates how the custom profile can be used to
activate license against e-Mail address here: <a href="http://www.mancosoftware.com/licensing/download.htm" target="_blank">http://www.mancosoftware.com/licensing/download.htm</a><o:p></o:p></span></span></div>
amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-55947893428920962282012-12-06T06:52:00.002-08:002012-12-06T06:52:50.812-08:00Version 7.1 of the Manco .NET Licensing System released <div dir="ltr" style="text-align: left;" trbidi="on">
Manco .NET Licensing System version 7.1 is available now. You can get 15-days trial version at the <a href="http://www.mancosoftware.com/licensing/download.htm">http://www.mancosoftware.com/licensing/download.htm</a><br />
<br />
List of the most significant changes made in the new version:<br />
<br />
<ol style="text-align: left;">
<li>Created own simplified implementation of the ClientFormsAuthenticationMembershipProvider which don't use offline authentication (don't store authentication cookies and password hash locally). It allows using of the Activation Web Service on the ASP.NET hostings which have not user profile for system users (like ASPNET or Network Services).</li>
<li>Added ability for immediate deactivation of the product on the client side when ValidateProduct method of the AWS is called. For example, the customer requests a money-back so the protected application should stop working as soon as possible. Setting of the allowed activations to 0 now mean that customer’s license is inactive and application should be switched to the evaluation mode (or start throw exception depends on the settings).</li>
<li>The Floating License Service (FLWS) have been redesigned to be WCF service.</li>
<li>Added ability to use floating license offline during specified timeframe.</li>
<li>FLWS is able to unlock licenses automatically using time-frame rule set. For example, if locked license is older than 5 days then it should be unlocked. This feature works in conjunction with ability to use floating license offline. </li>
<li>Added ability to use Data Service as storage for the licenses in the FLWS.</li>
<li>Changed the way the floating license usage is registered on the server. FLWS don’t use IP address for these purposes anymore. The IP address of the user PC can be changed between obtaining and release the license. For example, user is travelling and floating license is configured to be used in the offline mode for some time. Now FLWS uses unique Floating License Session ID for it. </li>
<li>Added separate method to free FLWS license to the floating license helper.</li>
<li>Added ability to configure AWS timeout for the FLWS.</li>
<li>Added DeactivateLicense method to FLWS. It simplifies moving of the floating licenses to the new hardware.</li>
<li>Because of the changes in the floating license processing the expiration state of the evaluation license is validated on server now. If license expired then GetLicenseString returns empty string.</li>
<li>The default value of the license rule in the “Included Rule” grid can be edited using same control type as it is used to set its value in the sale record.</li>
<li>Added stop list for the e-Mail communications. The e-Mails will not be sent to the customers are included to this list. </li>
<li>Added support for "ref" parameters when creating wrapper for code encryption.</li>
<li>Added several minor enhancements in the UI of the License Manager and License Shop.</li>
<li>Fixed few minor bugs.</li>
</ol>
</div>
amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-29911997694809594512011-12-10T02:15:00.001-08:002011-12-10T02:47:21.848-08:00Custom protected storage<div dir="ltr" style="text-align: left;" trbidi="on">
During a long time Manco .NET Licensing System supported 2 kinds of the protected storage: Windows Registry and Isolated Storage. No matter that it looks like enough for most .NET Framework scenarios there are environments and applications which require another approach. For example, Windows Azure Partial Trust role have not access to the Windows Registry or Isolated Storage. To make it possible to use our protection library in those scenarios we introduced ability to create custom protected storage which will better suit the needs of your application.<br />
<br />In this article I’ll show how custom protected storage can be implemented using very simple scenario using temporary files. <br />
<br /><strong>Note:</strong> Pay attentions, this is just an example which demonstrates how the custom protected storage can be implemented. The temp folder isn't a good and secure place to store licensing information.<br />
<br />Mostly implementation of the license protection is the same as for other licensing schemas. The difference is in the protected storage only. We suppose that you have read at least “Quick Start” section in our product documentation, so we will show the peculiarity of the custom protected storage only. <br />First of all you should change mode of the protected storage in the License Manager to the “Custom”:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYNjrAAUVTithuDFA8B7ZJkusT_LQUYuf8F2VLat1j9t-dEd0ZvVk6zQzE2DjTM4cbF1jt_KUSJN09v8Apf1d4d3H4MNYZqlb3-kVu0pwElIjpbEATXv32VJt1BkC_-r_xKOeTd9-bqqGJ/s1600/CustomProtectedStorage.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="348" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYNjrAAUVTithuDFA8B7ZJkusT_LQUYuf8F2VLat1j9t-dEd0ZvVk6zQzE2DjTM4cbF1jt_KUSJN09v8Apf1d4d3H4MNYZqlb3-kVu0pwElIjpbEATXv32VJt1BkC_-r_xKOeTd9-bqqGJ/s400/CustomProtectedStorage.png" width="400" /></a></div>
<br />
<br />
Now you should regenerate ILicenseKeyProvider and replace it in the protected application.<br />
<br />As next step you should create class which will implement Manco.Licensing.IProtectedStorage interface:<br />
<strong>[C#]</strong><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">///</span><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><summary></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">///</span><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> Custom protected storage which uses temporary file.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">///</span><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> Pay attentions, this is just an example which demonstrates how the </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">///</span><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> custom protected storage can be implemented. The temp folder isn't a
good </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">///</span><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> and secure place to store licensing information. </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">///</span><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></summary></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">public</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">
<span style="color: blue;">class</span> <span style="color: #2b91af;">TempFileProtectedStorage</span>
: <span style="color: #2b91af;">IProtectedStorage</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">public</span>
TempFileProtectedStorage()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><o:p></o:p></span></div>
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><summary></span></span><br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> Gets or sets path of the temporary file.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"></summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">private</span> <span style="color: blue;">string</span> FilePath </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>{ </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">get</span>;
</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">set</span>;
</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>}</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> Gets or sets protected assembly.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"></summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">private</span> <span style="color: #2b91af;">Assembly</span> ProtectedAssembly</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">get</span>;</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">set</span>;</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>}</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> Dispose protected storage object</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"></summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> Dispose()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>}</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> Gets stream to read license document from the protected
storage</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"></summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><returns></span><span style="color: green;">Stream to read document from</span><span style="color: grey;"></returns></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">public</span>
System.IO.<span style="color: #2b91af;">Stream</span> GetInputStream()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: #2b91af;">FileStream</span>
fileStream = <span style="color: #2b91af;">File</span>.Open(<span style="color: blue;">this</span>.FilePath, </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 70.8pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">FileMode</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.OpenOrCreate, </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">FileAccess</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.ReadWrite,
</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">FileShare</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.None);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">if</span>
(fileStream.Length > 0)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: #2b91af;">StreamReader</span>
reader = <span style="color: blue;">new</span> <span style="color: #2b91af;">StreamReader</span>(fileStream);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>reader.ReadLine();</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">string</span>
lsEncrLicense = reader.ReadLine();</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>reader.Close();</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>fileStream.Close();</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">byte</span>[]
encrypted = <span style="color: #2b91af;">Convert</span>.FromBase64String(lsEncrLicense);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: #2b91af;">MemoryStream</span>
stream = <span style="color: blue;">new</span> <span style="color: #2b91af;">MemoryStream</span>(encrypted);</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">return</span>
stream;</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 1;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">else</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>fileStream.Close();</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span></span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">return</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: blue;">null</span>;</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 2;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 1;"> </span>}</span><span style="font-family: Consolas; font-size: 9.5pt;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 1;"> </span></span><span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">///</span><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> Initialize protected storage.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"></summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><param
name="licenseKeyProvider"></span><span style="color: green;">License
key provider.</span><span style="color: grey;"></param></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> Initialize(<span style="color: #2b91af;">ILicenseKeyProvider</span>
licenseKeyProvider)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">this</span>.FilePath
= <span style="color: blue;">null</span>;</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: green;">// In
this example we use name of the product to create</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: green;">//
temporary folder.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">this</span>.ProtectedAssembly
= licenseKeyProvider.GetType().Assembly;</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: #2b91af;">AssemblyProductAttribute</span>
attribute = </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>(<span style="color: #2b91af;">AssemblyProductAttribute</span>)<span style="color: #2b91af;">Attribute</span>.GetCustomAttribute(</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">this</span>.ProtectedAssembly,
<span style="color: blue;">typeof</span>(<span style="color: #2b91af;">AssemblyProductAttribute</span>));</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">if</span>
(attribute != <span style="color: blue;">null</span> && !<span style="color: blue;">string</span>.IsNullOrEmpty(attribute.Product))</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">string</span>
folderPath = <span style="color: #2b91af;">Path</span>.Combine(</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">Path</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.GetTempPath(), attribute.Product);</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">if</span>
(!<span style="color: #2b91af;">Directory</span>.Exists(folderPath))</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span><span style="color: #2b91af;">Directory</span>.CreateDirectory(folderPath);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>}</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span><o:p></o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: green;">//
Use public key as index to search license file.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">string</span>
publicKey = </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">this</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.GetPublicKeyHexString(</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">this</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.ProtectedAssembly.GetName().GetPublicKey());</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">string</span>[]
files = <span style="color: #2b91af;">Directory</span>.GetFiles(folderPath);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">foreach</span>
(<span style="color: blue;">string</span> file <span style="color: blue;">in</span>
files)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span></span><span style="font-family: Consolas; font-size: 9.5pt;">{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 4;"> </span><span style="color: blue;">try</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 4;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 5;"> </span></span><span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">StreamReader</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> loReader = <span style="color: blue;">new</span> <span style="color: #2b91af;">StreamReader</span>(</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 177pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">File</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.Open(file, </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 212.4pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">FileMode</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.Open, </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 212.4pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">FileAccess</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.ReadWrite, </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 212.4pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">FileShare</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.None));</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 5;"> </span><span style="color: blue;">string</span> textLine = loReader.ReadLine();</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 5;"> </span>loReader.Close();</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 5;"> </span><span style="color: blue;">if</span> (textLine == publicKey)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 5;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 6;"> </span><span style="color: blue;">this</span>.FilePath = file;</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 6;"> </span><span style="color: blue;">break</span>;</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 5;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span><span style="color: blue;">catch</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>}<o:p></o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">if</span>
(<span style="color: blue;">this</span>.FilePath == <span style="color: blue;">null</span>)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span><span style="color: blue;">this</span>.FilePath = <span style="color: #2b91af;">Path</span>.Combine(</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 141.6pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">folderPath,
</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 141.6pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">Path</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.GetRandomFileName());</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">else</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">throw</span>
<span style="color: blue;">new</span> <span style="color: #2b91af;">ArgumentException</span>(<span style="color: #a31515;">"Product name isn't set in the protected
assembly!"</span>);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>}</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> Write byte array to the protected storage.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"></summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><param
name="toWrite"></span><span style="color: green;">Byte array to
write.</span><span style="color: grey;"></param></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> WriteByteArray(<span style="color: blue;">byte</span>[]
toWrite)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">if</span>
(!<span style="color: blue;">string</span>.IsNullOrEmpty(<span style="color: blue;">this</span>.FilePath))</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: #2b91af;">FileStream</span>
fileStream = <span style="color: #2b91af;">File</span>.Open(</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">this</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.FilePath,
</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 141.6pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">FileMode</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.Create,
</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 141.6pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">FileAccess</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.Write,</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 141.6pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">FileShare</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.None);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: #2b91af;">StreamWriter</span>
writer = <span style="color: blue;">new</span> <span style="color: #2b91af;">StreamWriter</span>(fileStream);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">string</span>
publicKey = <span style="color: blue;">this</span>.GetPublicKeyHexString(</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt 106.2pt; mso-layout-grid-align: none; text-indent: 35.4pt;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">this</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.ProtectedAssembly.GetName().GetPublicKey());</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>writer.WriteLine(publicKey);</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">string</span>
lsEncrLicense = <span style="color: #2b91af;">Convert</span>.ToBase64String(toWrite);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>writer.WriteLine(lsEncrLicense);</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>writer.Close();</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>fileStream.Close();</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span>}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>}</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">private</span> <span style="color: blue;">string</span> GetPublicKeyHexString(<span style="color: blue;">byte</span>[]
publicKey)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">string</span>
stringKey = <span style="color: blue;">string</span>.Empty;</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">foreach</span>
(<span style="color: blue;">byte</span> b <span style="color: blue;">in</span>
publicKey)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span>{</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>stringKey += b.ToString(<span style="color: #a31515;">"X2"</span>);</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span>}</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">return</span>
stringKey;</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span><span style="font-family: Consolas; font-size: 9.5pt;">}</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;">}</span></div>
<br />
<strong>[VB.NET]</strong><br />
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">'''
</span><span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><summary></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">'''
Custom protected storage which uses temporary file.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">'''
Pay attentions, this is just an example which demonstrates how the </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">'''
custom protected storage can be implemented. The temp folder isn't a good </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">'''
and secure place to store licensing information. </span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">'''
</span><span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></summary></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">Public</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">
<span style="color: blue;">Class</span> <span style="color: #2b91af;">TempFileProtectedStorage</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Implements</span>
<span style="color: #2b91af;">IProtectedStorage</span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Public</span> <span style="color: blue;">Sub</span> <span style="color: blue;">New</span>()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Sub</span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' Gets or
sets path of the temporary file.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"></summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Private</span> <span style="color: blue;">Property</span> FilePath() <span style="color: blue;">As</span>
<span style="color: blue;">String</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Get</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Return</span>
m_FilePath</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">End</span>
<span style="color: blue;">Get</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Set</span>(value
<span style="color: blue;">As</span> <span style="color: blue;">String</span>)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>m_FilePath = value</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">End</span>
<span style="color: blue;">Set</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Property</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Private</span>
m_FilePath <span style="color: blue;">As</span> <span style="color: blue;">String</span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' Gets or
sets protected assembly.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"></summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Private</span> <span style="color: blue;">Property</span> ProtectedAssembly() <span style="color: blue;">As</span>
<span style="color: #2b91af;">Assembly</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Get</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Return</span>
m_ProtectedAssembly</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">End</span>
<span style="color: blue;">Get</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Set</span>(value
<span style="color: blue;">As</span> <span style="color: #2b91af;">Assembly</span>)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>m_ProtectedAssembly = value</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">End</span>
<span style="color: blue;">Set</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Property</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Private</span>
m_ProtectedAssembly <span style="color: blue;">As</span> <span style="color: #2b91af;">Assembly</span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' Dispose
protected storage object</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"></summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Public</span> <span style="color: blue;">Sub</span> Dispose() _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: blue;">Implements</span> <span style="color: #2b91af;">IProtectedStorage</span>.Dispose</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Sub</span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' Gets stream
to read license document from the protected storage</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"></summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><returns></span><span style="color: green;">Stream to
read document from</span><span style="color: grey;"></returns></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Public</span> <span style="color: blue;">Function</span> GetInputStream() <span style="color: blue;">As</span>
System.IO.<span style="color: #2b91af;">Stream</span> _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: blue;">Implements</span> <span style="color: #2b91af;">IProtectedStorage</span>.GetInputStream</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Dim</span>
fileStream <span style="color: blue;">As</span> <span style="color: #2b91af;">FileStream</span>
= <span style="color: #2b91af;">File</span>.Open( _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: blue;">Me</span>.FilePath, _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #2b91af;">FileMode</span>.OpenOrCreate,
_</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #2b91af;">FileAccess</span>.ReadWrite,
_</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #2b91af;">FileShare</span>.None)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">If</span>
fileStream.Length > 0 <span style="color: blue;">Then</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Dim</span>
reader <span style="color: blue;">As</span> <span style="color: blue;">New</span> <span style="color: #2b91af;">StreamReader</span>(fileStream)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>reader.ReadLine()</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Dim</span>
lsEncrLicense <span style="color: blue;">As</span> <span style="color: blue;">String</span>
= reader.ReadLine()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>reader.Close()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>fileStream.Close()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Dim</span>
encrypted <span style="color: blue;">As</span> <span style="color: blue;">Byte</span>()
= <span style="color: #2b91af;">Convert</span>.FromBase64String(lsEncrLicense)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Dim</span>
stream <span style="color: blue;">As</span> <span style="color: blue;">New</span> <span style="color: #2b91af;">MemoryStream</span>(encrypted)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Return</span>
stream</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Else</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>fileStream.Close()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Return</span>
<span style="color: blue;">Nothing</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">End</span>
<span style="color: blue;">If</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Function</span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' Initialize
protected storage.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"></summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><param name="licenseKeyProvider"></span><span style="color: green;">License key provider.</span><span style="color: grey;"></param></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Public</span> <span style="color: blue;">Sub</span> Initialize(licenseKeyProvider <span style="color: blue;">As</span> <span style="color: #2b91af;">ILicenseKeyProvider</span>)
_</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: blue;">Implements</span> <span style="color: #2b91af;">IProtectedStorage</span>.Initialize</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Me</span>.FilePath
= <span style="color: blue;">Nothing</span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: green;">' In this
example we use name of the product to create </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: green;">'
temporary folder.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Me</span>.ProtectedAssembly
= licenseKeyProvider.[GetType]().Assembly</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Dim</span>
productAttribute <span style="color: blue;">As</span> <span style="color: #2b91af;">AssemblyProductAttribute</span>
= _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: blue;">DirectCast</span>(<span style="color: #2b91af;">Attribute</span>.GetCustomAttribute(<span style="color: blue;">Me</span>.ProtectedAssembly, _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: blue;">GetType</span>(<span style="color: #2b91af;">AssemblyProductAttribute</span>)), <span style="color: #2b91af;">AssemblyProductAttribute</span>)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">If</span>
productAttribute <span style="color: blue;">IsNot</span> <span style="color: blue;">Nothing</span>
_</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: blue;">AndAlso</span> <span style="color: blue;">Not</span> <span style="color: blue;">String</span>.IsNullOrEmpty(productAttribute.Product)
<span style="color: blue;">Then</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Dim</span>
folderPath <span style="color: blue;">As</span> <span style="color: blue;">String</span>
= System.IO.<span style="color: #2b91af;">Path</span>.Combine( _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="mso-spacerun: yes;"> </span>System.IO.<span style="color: #2b91af;">Path</span>.GetTempPath(),
productAttribute.Product)</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">If</span>
<span style="color: blue;">Not</span> <span style="color: #2b91af;">Directory</span>.Exists(folderPath)
<span style="color: blue;">Then</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span></span><span style="color: #2b91af; font-family: Consolas; font-size: 9.5pt;">Directory</span><span style="font-family: Consolas; font-size: 9.5pt;">.CreateDirectory(folderPath)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">End</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> <span style="color: blue;">If</span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: green;">'
Use public key as index to search license file.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Dim</span>
publicKey <span style="color: blue;">As</span> <span style="color: blue;">String</span>
= <span style="color: blue;">Me</span>.GetPublicKeyHexString( _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: blue;">Me</span>.ProtectedAssembly.GetName().GetPublicKey())</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Dim</span>
files <span style="color: blue;">As</span> <span style="color: blue;">String</span>()
= <span style="color: #2b91af;">Directory</span>.GetFiles(folderPath)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">For</span>
<span style="color: blue;">Each</span> fileName <span style="color: blue;">As</span>
<span style="color: blue;">String</span> <span style="color: blue;">In</span> files</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span><span style="color: blue;">Try</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 5;"> </span><span style="color: blue;">Dim</span> loReader <span style="color: blue;">As</span> <span style="color: blue;">New</span> <span style="color: #2b91af;">StreamReader</span>(
_</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 5;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #2b91af;">File</span>.Open(fileName,
_</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 6;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #2b91af;">FileMode</span>.Open,
_</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 6;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #2b91af;">FileAccess</span>.ReadWrite,
_</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 6;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #2b91af;">FileShare</span>.None))</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 5;"> </span><span style="color: blue;">Dim</span> textLine <span style="color: blue;">As</span> <span style="color: blue;">String</span> = loReader.ReadLine()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 5;"> </span>loReader.Close()</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 5;"> </span><span style="color: blue;">If</span> textLine = publicKey <span style="color: blue;">Then</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 6;"> </span><span style="color: blue;">Me</span>.FilePath = fileName</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 6;"> </span><span style="color: blue;">Exit Try</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 5;"> </span><span style="color: blue;">End</span> <span style="color: blue;">If</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span></span><span style="color: blue; font-family: Consolas; font-size: 9.5pt;">Catch</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 4;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Try</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 3;"> </span></span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">Next</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">If</span>
<span style="color: blue;">Me</span>.FilePath <span style="color: blue;">Is</span> <span style="color: blue;">Nothing</span> <span style="color: blue;">Then</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span><span style="color: blue;">Me</span>.FilePath = System.IO.<span style="color: #2b91af;">Path</span>.Combine(
_</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span><span style="mso-spacerun: yes;"> </span>folderPath, System.IO.<span style="color: #2b91af;">Path</span>.GetRandomFileName())</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">End</span>
<span style="color: blue;">If</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Else</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Throw</span>
<span style="color: blue;">New</span> <span style="color: #2b91af;">ArgumentException</span>(<span style="color: #a31515;">"Product name isn't set in the protected
assembly!"</span>)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">End</span>
<span style="color: blue;">If</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Sub</span><o:p></o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' Write byte
array to the protected storage.</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"></summary></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><param name="toWrite"></span><span style="color: green;">Byte array to write.</span><span style="color: grey;"></param></span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Public</span> <span style="color: blue;">Sub</span> WriteByteArray(toWrite <span style="color: blue;">As</span>
<span style="color: blue;">Byte</span>()) _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: blue;">Implements</span> <span style="color: #2b91af;">IProtectedStorage</span>.WriteByteArray</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">If</span> <span style="color: blue;">Not</span> <span style="color: blue;">String</span>.IsNullOrEmpty(<span style="color: blue;">Me</span>.FilePath) <span style="color: blue;">Then</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Dim</span>
fileStream <span style="color: blue;">As</span> <span style="color: #2b91af;">FileStream</span>
= <span style="color: #2b91af;">File</span>.Open( _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: blue;">Me</span>.FilePath, _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #2b91af;">FileMode</span>.Create,
_</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #2b91af;">FileAccess</span>.Write,
_</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: #2b91af;">FileShare</span>.None)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Dim</span>
writer <span style="color: blue;">As</span> <span style="color: blue;">New</span> <span style="color: #2b91af;">StreamWriter</span>(fileStream)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Dim</span>
publicKey <span style="color: blue;">As</span> <span style="color: blue;">String</span>
= <span style="color: blue;">Me</span>.GetPublicKeyHexString( _</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: blue;">Me</span>.ProtectedAssembly.GetName().GetPublicKey())</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>writer.WriteLine(publicKey)</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Dim</span>
lsEncrLicense <span style="color: blue;">As</span> <span style="color: blue;">String</span>
= <span style="color: #2b91af;">Convert</span>.ToBase64String(toWrite)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>writer.WriteLine(lsEncrLicense)</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>writer.Close()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>fileStream.Close()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">End</span>
<span style="color: blue;">If</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Sub</span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Private</span> <span style="color: blue;">Function</span> GetPublicKeyHexString(publicKey <span style="color: blue;">As</span> <span style="color: blue;">Byte</span>()) <span style="color: blue;">As</span> <span style="color: blue;">String</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Dim</span>
stringKey <span style="color: blue;">As</span> <span style="color: blue;">String</span>
= <span style="color: blue;">String</span>.Empty</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">For</span>
<span style="color: blue;">Each</span> b <span style="color: blue;">As</span> <span style="color: blue;">Byte</span> <span style="color: blue;">In</span> publicKey</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span>stringKey += b.ToString(<span style="color: #a31515;">"X2"</span>)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Next</span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Return</span>
stringKey</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Function</span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">End</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">
<span style="color: blue;">Class</span><o:p></o:p></span></div>
<br />
The final step you have to do is informing the protection library about class which implements custom protected storage:<br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">[C#]</span></span></b></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">//
Instantiate license object and assign assemblies for validation.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">this</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.license
= (Manco.Licensing.<span style="color: #2b91af;">License</span>)<span style="color: #2b91af;">LicenseManager</span>.Validate(</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">typeof</span>(<span style="color: #2b91af;">MainWindow</span>), <span style="color: blue;">this</span>);</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">//
Set type which implements custom protected storage.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">//
It must be done before any other operations with license object.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">this</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.license.CustomProtectedStorageType
= <span style="color: blue;">typeof</span>(<span style="color: #2b91af;">TempFileProtectedStorage</span>);</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><o:p> </o:p></span></div>
<br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">this</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.license.LicensedAssembly
= <span style="color: blue;">typeof</span>(<span style="color: #2b91af;">MainWindow</span>).Assembly;</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">this</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.licenseProperties
= <span style="color: blue;">this</span>.license.GetLicenseProperties();</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">this</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.licenseState
= <span style="color: blue;">this</span>.license.GetLicenseState(<span style="color: blue;">true</span>);</span><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><o:p><span style="font-family: Calibri;"> </span></o:p></span></b></div>
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;">
<span style="font-family: Calibri;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;">[VB.NET]</span></b><span lang="EN-US" style="mso-ansi-language: EN-US;"> </span></span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">'
Instantiate license object and assign assemblies for validation.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">Me</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.license
= <span style="color: #2b91af;">LicenseManager</span>.Validate(<span style="color: blue;">GetType</span>(<span style="color: #2b91af;">MainWindow</span>),
<span style="color: blue;">Me</span>)</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<br /></div>
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">' Set type which implements custom protected storage.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">' It must be done before any other operations with license object.</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">Me</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.license.CustomProtectedStorageType = <span style="color: blue;">GetType</span>(<span style="color: #2b91af;">TempFileProtectedStorage</span>)<o:p></o:p></span></div>
</span><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">Me</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.license.LicensedAssembly
= <span style="color: blue;">GetType</span>(<span style="color: #2b91af;">MainWindow</span>).Assembly</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">Me</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.licenseProperties
= <span style="color: blue;">Me</span>.license.GetLicenseProperties()</span></div>
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">Me</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">.licenseState
= <span style="color: blue;">Me</span>.license.GetLicenseState(<span style="color: blue;">True</span>)</span></div>
<br />
You can find sample solution which demonstrates creation of the custom protected storage at the <a href="http://www.mancosoftware.com/licensing/download.htm">http://www.mancosoftware.com/licensing/download.htm</a>. </div>amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-81532726421779758772011-12-10T02:02:00.001-08:002011-12-10T02:13:31.012-08:00Version 6.2.1 of the Manco .NET Licensing System released<div dir="ltr" style="text-align: left;" trbidi="on">
Manco .NET Licensing System version 6.2.1 is available now. You can get 15-days trial version at the <a href="http://www.mancosoftware.com/licensing/download.htm">http://www.mancosoftware.com/licensing/download.htm</a><br />
<br />
List of the most significant changes made in the new version:<br />
<ol>
<li>Custom protected storage.</li>
<li>Added SubscriptionExpired property to the license state object.</li>
<li>Automatic protected storage selection switched to use Isolated Storage first, and then Windows Registry.</li>
<li>Added few enhancements into the creation of the wrapper class for encrypted binaries.</li>
</ol>
</div>amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-19082396249971418402011-10-30T01:13:00.000-07:002011-10-30T01:13:38.756-07:00Prepare assembly for encryption - best practice<div dir="ltr" style="text-align: left;" trbidi="on">
When you protect your intellectual property using code encryption you probably want your customers and/or competitors are unaware of how your code works inside. But at the same time your encrypted code should intercommunicate with other (not encrypted) parts of your application. So we can consider your assembly for encryption as a black box which has some interfaces (properties and methods) which are used to communicate with outside world. <br />
<br />What is a best practice to create those “black box”? I could recommend you some rules which help you to create good assembly for encryption.<br />
<br />First of all we should detect what data types (mostly it concerns to the classes, interfaces and exceptions) will be used from both (encrypted and not encrypted) parts of your application and then decide where and how they will be declared. <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheCOtVY_ac-0R-0zIhSjapLlynxXuOTZy28syD-7aOqw8WPnxWSON0rn96n5y48IJUnvnCqkoqm-R6YujXmThYLBGNM4XaSbV6auKjEOaDZ6LLasOHR-ZNqwxQ3_0Z0SEGC7_vShqrxgzc/s1600/EncryptedAssembly.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheCOtVY_ac-0R-0zIhSjapLlynxXuOTZy28syD-7aOqw8WPnxWSON0rn96n5y48IJUnvnCqkoqm-R6YujXmThYLBGNM4XaSbV6auKjEOaDZ6LLasOHR-ZNqwxQ3_0Z0SEGC7_vShqrxgzc/s320/EncryptedAssembly.png" width="320" /></a></div>
<br />Your encrypted assembly shouldn’t declare publically visible interfaces. For example, class in your encrypted assembly implements interface which than is used in the not encrypted code. In this case you should define that interface in the separate assembly and reference it from the projects of the encrypted and not encrypted assembly:<br />
If your encrypted assembly uses delegates which should be publically visible then define them in the separate assembly and reference it from the projects of the encrypted and not encrypted assembly.<br />
<br />If some members in your encrypted assembly can throw an exception of the custom type which should be caught and processed in the not encrypted code, then it is not recommended to define custom exception type in the encrypted assembly. Define it in the separate assembly and reference it from the project of the encrypted assembly and from the project where exception will be caught and processed.<br />
<br />As the next step we should decide which classes from the encrypted assembly should be accessible from the not encrypted code through the automatically generated wrappers. We strong recommend minimizing the number of the publically visible classes. Structure of the publically visible classes can give a lot of information about internal implementation of the hidden functionality. If it is not supposed to use class from the external code then declare it as internal (Friend in VB.NET).<br />
<br />Try to make classes in your assembly to have small number of the publically visible properties and methods. If it is not supposed to use property or method from the external code then declare it as private or internal.<br />
<br />Try to not use publically visible nested classes.</div>amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-58511034942997250632011-10-24T01:46:00.000-07:002011-10-24T01:46:47.136-07:00Version 6.2 of the Manco .NET Licensing System released<div dir="ltr" style="text-align: left;" trbidi="on">Manco .NET Licensing System version 6.2 is available now. You can get 15-days trial version at the <a href="http://www.mancosoftware.com/licensing/download.htm">http://www.mancosoftware.com/licensing/download.htm</a><br />
<br />
List of the most significant changes made in new version:<br />
<br />
1. The major changes in the version 6.2 have been made for the protection library (protection library for the .NET Compact Framework have not been changed):<br />
a) Code have been significantly changed to hide protection implementation in a better way.<br />
b) Public API changed to complicate potential hack of the system.<br />
c) Added functionality which perform internal integrity check.<br />
d) Added support for the .NET Framework Client Profile for both .NET Framework 3.5 and .NET Framework 4.0.<br />
e) Improved support for the Medium trust environment (time limited evaluation can be used, Unlock Key licensing schemas can be used, license activation can be used with custom system profile).<br />
<br />
2. Added functionality to upgrade license from one version to another (both License Manager and License Shop).<br />
<br />
3. Added ability to transfer license from one customer to another (both License Manager and License Shop).<br />
<br />
4. "New license type" toolbar button extended with dropdown which contains good-known predefined licensing schemas.<br />
<br />
5. Changed implementation of the licensing schema in the AWS. Validation of the domain name now don't use DNS, but get it from HTTP request. Pay attention, evaluation version of the AWS now accept requests made to the 'localhost' domain only.</div>amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-22359989509097620422011-05-21T00:35:00.000-07:002011-05-21T00:35:29.355-07:00Complex .NET code protection<div dir="ltr" style="text-align: left;" trbidi="on">It is not a secret the programs written for .NET are easy to reverse engineer. This is not in any way a fault in the design of .NET. It is simply a reality of modern, intermediate-compiled languages. There are few techniques of software protection against unauthorized reverse-engineering:<br />
<ol><li>Code obfuscation – it is a technique when .NET assembly is converted into the form which is hard to read after de-compiling to the languages like C# or VB.NET.</li>
<li>Code encryption – it is a technique when binary file (DLL) of the .NET assembly is encrypted and stored somewhere in your application. In runtime your application decrypt, load and use it. </li>
<li>Convert .NET application from the IL form into the processor-specific binaries.</li>
</ol>We will not consider #3 in this article, because it creates binaries which actually aren’t a .NET code already. We will take a look into the combination of the #1 and #2 for better protection of your intellectual property.<br />
Manco Software produces products which support both code obfuscation (<a href="http://www.mancosoftware.com/licensing/index.htm">Manco .NET Obfuscator</a>) and code encryption (<a href="http://www.mancosoftware.com/licensing/index.htm">Manco .NET Licensing System</a>). Both techniques give you a good level of the code protection itself. But the best level can be achieved when they are used in combination. <br />
At the beginning we should create project files for code encryption and code obfuscation. Process of the complex .NET code protection consists of the 4 steps, so you should have 4 project files:<br />
<ol><li>Project file to create loader and wrapper class. The License Manager uses reflection when creates these files, so it is close to impossible to do it after code obfuscation. So this process must use original (not obfuscated) assembly binary file.</li>
<li>Project file to obfuscate assembly DLL.</li>
<li>Project file to encrypt obfuscated DLL.</li>
<li>Project file to obfuscate your application which uses encrypted DLL.</li>
</ol><strong><span style="font-size: large;">Create project file for loader and wrapper</span></strong><br />
<br />
This project file will be used to create loader and wrapper class for encrypted only.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0pi1h4_C252GSN1zKRouM-JGbo3MMo4m23oR38h6vk85MZPnResB2U5Xm2WHuEVod8nBPy73JA4ejOF9Fu8th7XQ9Qzvu4I4JktUc6ZxdJLdLVfZk_F1MzfnLGMHlyiVSLygdFu4OPkFQ/s1600/EncryptFileAssemblyPublicAsInternal.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><ol><li>Run License Manager and select “Products” tab.</li>
<li>Right click license type node.</li>
<li>Select “Encrypt File” in the context menu.<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL4MhhS4fv5Q-lL7su8OnXrCop5dck-TUFSUAfCnGPmCdOIYVr9iyd7_U-cKhCwsJ41U1_GkZkBcckoMCqYx5m4aOGjMygTeZlCYEv4O3FeyJeLCS7VfCS7EO1SLx-CrWSOhhJlqNRuupj/s1600/EncryptFileContextMenuItem.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL4MhhS4fv5Q-lL7su8OnXrCop5dck-TUFSUAfCnGPmCdOIYVr9iyd7_U-cKhCwsJ41U1_GkZkBcckoMCqYx5m4aOGjMygTeZlCYEv4O3FeyJeLCS7VfCS7EO1SLx-CrWSOhhJlqNRuupj/s320/EncryptFileContextMenuItem.png" width="320" /></a></li>
<li>If you’ve not generated crypto parameters and cryptographic key for file encryption, then click “Generate Crypto Params” button. In other case, select in the “Cryptographic Key” combo box name of the custom value where cryptographic keys are stored. NOTE: If you created new cryptographic parameters then you MUST re-create license file to include these parameters to it.</li>
<li>Enter name of the DLL file that contains assembly to be encrypted to the “File to encrypt” text box.</li>
<li>Enter name of the file that will contain encrypted assembly to the “Save encrypted to” text box.</li>
<li>Check “Create Loader and Wrapper for encrypted assembly” check box.</li>
<li>Select programming language that will be used to create loader and wrapper in the “Language” combo box. C# and Visual Basic .NET are currently supported.</li>
<li>Enter name of the file to save generated code to the “Save loader to” text box.</li>
<li>By default public methods and properties from encrypted DLL has same access modifier (public) in the wrapper class. We suppose that you need not to access these methods and properties outside your application, and you would like to have wrapper class obfuscated by Manco .NET Obfuscator. In this case it is reasonable to use ‘internal’ access modifier for these methods and properties. Check the “Set internal access modifier in the wrapper class for public properties and methods” checkbox to change access modifiers in the wrapper class.<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0pi1h4_C252GSN1zKRouM-JGbo3MMo4m23oR38h6vk85MZPnResB2U5Xm2WHuEVod8nBPy73JA4ejOF9Fu8th7XQ9Qzvu4I4JktUc6ZxdJLdLVfZk_F1MzfnLGMHlyiVSLygdFu4OPkFQ/s1600/EncryptFileAssemblyPublicAsInternal.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0pi1h4_C252GSN1zKRouM-JGbo3MMo4m23oR38h6vk85MZPnResB2U5Xm2WHuEVod8nBPy73JA4ejOF9Fu8th7XQ9Qzvu4I4JktUc6ZxdJLdLVfZk_F1MzfnLGMHlyiVSLygdFu4OPkFQ/s320/EncryptFileAssemblyPublicAsInternal.png" width="320" /></a></li>
<li>Click "Save settings" button and enter name of the project file. For example: CreateLoaderAndWraper_EncryptSettings.xml.</li>
<li>Click "Encrypt" button. File with loader and wrapper classes will be created.</li>
<li>Click "Close" button.</li>
</ol><div><strong><span style="font-size: large;">Create project file for obfuscation of the encrypted assembly</span></strong></div><div><strong><span style="font-size: large;"><br />
</span></strong>This project file will be used to obfuscate original assembly (DLL).</div><ol><li>Run Manco .NET Obfuscator.</li>
<li>Click “Open Assembly” button. In the open file dialog select .NET binary file (DLL or EXE) you’d like to obfuscate. Manco .NET Obfuscator will load assembly information and make default obfuscation settings. You can browse the classes, fields and methods are supposed to be obfuscated in the assembly tree view. If checkbox in the tree view is checked then correspondent item (class, property or field) will be obfuscated. By default Manco .NET Obfuscator mark private and internal classes and members for obfuscation.</li>
<li>By default Manco .NET Obfuscator do not mark any strings to encode. You can simple force obfuscator to encode all strings in assembly by check “Encode all strings” check box, or you can switch to the “Strings for encoding” tab and select strings which should be encoded. By default Manco .NET Obfuscator uses “Raw” method to encode strings. It is a fastest way to encode and decode strings, but it is less secure than other options.</li>
<li>Set desirable level of the control flow protection.<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj98Vai8xoks_loi4i1ta0gNRwcLeYv1p5rd871J7V3SzcKTh9KVW0EM5Hsurh2h8AxFyvOx0g0nvw8Ad3yFEJ9DPPBA-X_kSj-tFzoLKUMxe-PRA2faY8iMJFO-GXVTpTDinMmaz5sKOpV/s1600/ObfuscateEncryptedAssembly.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj98Vai8xoks_loi4i1ta0gNRwcLeYv1p5rd871J7V3SzcKTh9KVW0EM5Hsurh2h8AxFyvOx0g0nvw8Ad3yFEJ9DPPBA-X_kSj-tFzoLKUMxe-PRA2faY8iMJFO-GXVTpTDinMmaz5sKOpV/s320/ObfuscateEncryptedAssembly.png" width="320" /></a></li>
<li>Click “Save” button and enter name of the obfuscation project. For example: ImportantFunctionality.moproj.</li>
</ol><div><strong><span style="font-size: large;">Create project file to encrypt obfuscated DLL</span></strong></div><div><strong><span style="font-size: large;"><br />
</span></strong>This project file will be used to encrypt obfuscated DLL. </div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisrvKCKc3lpDoiAgK90oJdAkXKbhnU-4hCg4Vd7kvBiQYfDMmCgArqB6MHehBPE6Oi_FRnQDVsLeC0jUv4Lv_bnuMbtX4POyXs03DnlHrx1CFvuP5X1VJ7891xQggmac5bQicTu83VBwK2/s1600/EmbeddedResourceEncryptedAssembly.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div><ol><li>Run License Manager and select “Products” tab.</li>
<li>Right click license type node.</li>
<li>Select “Encrypt File” in the context menu.<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL4MhhS4fv5Q-lL7su8OnXrCop5dck-TUFSUAfCnGPmCdOIYVr9iyd7_U-cKhCwsJ41U1_GkZkBcckoMCqYx5m4aOGjMygTeZlCYEv4O3FeyJeLCS7VfCS7EO1SLx-CrWSOhhJlqNRuupj/s1600/EncryptFileContextMenuItem.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL4MhhS4fv5Q-lL7su8OnXrCop5dck-TUFSUAfCnGPmCdOIYVr9iyd7_U-cKhCwsJ41U1_GkZkBcckoMCqYx5m4aOGjMygTeZlCYEv4O3FeyJeLCS7VfCS7EO1SLx-CrWSOhhJlqNRuupj/s320/EncryptFileContextMenuItem.png" width="320" /></a></li>
<li>Select in the “Cryptographic Key” combo box name of the custom value where cryptographic keys are stored.</li>
<li>Enter name of the DLL file that contains OBFUSCATED assembly to the “File to encrypt” text box. For example: “D:\Manco\Licensing\EncryptAssemblyCS\ImportantFunctionality\bin\Debug\Output\ImportantFunctionality.dll”</li>
<li>Enter name of the file that will contain encrypted assembly to the “Save encrypted to” text box. <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY3HWYX3i42CcPgpHjkAWv4KyetP5A9DYpfpywYJvgcq5_GQn5AH-iIaXrtovIGDHjuvBzJsFf_49r8O_AibmJav-VRm_Pjzguo7lt8WDKrlPlOqg5NGwHJHc88StE4l30Ldsv5Gmo1vRJ/s1600/EncryptFileObfuscatedAssembly.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY3HWYX3i42CcPgpHjkAWv4KyetP5A9DYpfpywYJvgcq5_GQn5AH-iIaXrtovIGDHjuvBzJsFf_49r8O_AibmJav-VRm_Pjzguo7lt8WDKrlPlOqg5NGwHJHc88StE4l30Ldsv5Gmo1vRJ/s320/EncryptFileObfuscatedAssembly.png" width="320" /></a></li>
<li>Click "Save settings" button and enter name of the project file. For example: EncryptObfuscated_EncryptSettings.xml.</li>
<li>Click "Encrypt" button. File with loader and wrapper classes will be created.</li>
<li>Click "Close" button.</li>
<li>Remove reference to the encrypted assembly from your project.</li>
<li>Add encrypted assembly and loader class to your project. We would recommend you to add these 2 files to your project as link. This way you always will be sure that you are using latest version of the encrypted assembly and loader class.<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcgmCnkAEk3wyGQNhBV37IWTQeKrzrt6jRHhhvo_1JFt5fB-AMeMqzpR61ue6OAvgkNyGtjGh7eFETG_38QAJbFAMJolLnb3Qx3GVWcBiK71LCQ8f2jgqAZvWaMlxzTWQKjwJa1YR73M6J/s1600/EncryptAssemblyProjectFiles.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcgmCnkAEk3wyGQNhBV37IWTQeKrzrt6jRHhhvo_1JFt5fB-AMeMqzpR61ue6OAvgkNyGtjGh7eFETG_38QAJbFAMJolLnb3Qx3GVWcBiK71LCQ8f2jgqAZvWaMlxzTWQKjwJa1YR73M6J/s1600/EncryptAssemblyProjectFiles.png" /></a></li>
<li>Select file with encrypted code in the solution explorer (“ImportantFunctionality.dll.enc” in our case) and set Build Action for it to “Embedded Resource”. <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisrvKCKc3lpDoiAgK90oJdAkXKbhnU-4hCg4Vd7kvBiQYfDMmCgArqB6MHehBPE6Oi_FRnQDVsLeC0jUv4Lv_bnuMbtX4POyXs03DnlHrx1CFvuP5X1VJ7891xQggmac5bQicTu83VBwK2/s1600/EmbeddedResourceEncryptedAssembly.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisrvKCKc3lpDoiAgK90oJdAkXKbhnU-4hCg4Vd7kvBiQYfDMmCgArqB6MHehBPE6Oi_FRnQDVsLeC0jUv4Lv_bnuMbtX4POyXs03DnlHrx1CFvuP5X1VJ7891xQggmac5bQicTu83VBwK2/s320/EmbeddedResourceEncryptedAssembly.png" width="248" /></a></li>
<li>Add following code right after initialization of the license object:</li>
</ol><div><strong>[C#]</strong></div><div><strong><br />
</strong> _<span style="color: #0b5394;">EncryptedBinaryLoader</span>.Load(license);</div><div></div><div><strong>[VB.NET]</strong></div><div><strong><br />
</strong> <span style="color: #0b5394;">_EncryptedBinaryLoader</span>.Load(license)</div><br />
<strong><span style="font-size: large;">Create project file to obfuscate your application</span></strong> <br />
<br />
This project file will be used to obfuscate your application which uses encrypted DLL. The process is absolutely similar to one described for encrypted assembly. You just need to select executable file of your application. Pay attention, because of the settings made for the loader and wrapper classes both have internal access modifier, so Manco .NET Obfuscator marks both classes for obfuscation:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz011hShKw-guRAPtsAQVClpDk1dl8iOn4_9r4uslKLzl0SmUfqFWTD6LrOYcjK6w6fYMlShMDdSPY58mhEsi_YgzlP-7PtuwH5Xeim82lLidFM7PEq3YiZiEOEy3ng1KMYQiX1EZOzRq2/s1600/ObfuscateEncryptedAssemblyLoader.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz011hShKw-guRAPtsAQVClpDk1dl8iOn4_9r4uslKLzl0SmUfqFWTD6LrOYcjK6w6fYMlShMDdSPY58mhEsi_YgzlP-7PtuwH5Xeim82lLidFM7PEq3YiZiEOEy3ng1KMYQiX1EZOzRq2/s320/ObfuscateEncryptedAssemblyLoader.png" width="320" /></a></div><br />
Click “Save” button and enter name of the obfuscation project. For example: EncryptedAssembly.moproj.<br />
<br />
<strong><span style="font-size: large;">Using of the project files</span></strong><br />
<strong><span style="font-size: large;"><br />
</span></strong>If you are using “Standard Edition” of the Manco .NET Licensing System then you can encrypt your assembly using License Manager only. In this case build sequence looks like the following:<br />
<ol><li>Build Visual Studio project for encrypted assembly.</li>
<li>Run License Manager.</li>
<li>Use CreateLoaderAndWraper_EncryptSettings.xml project file to create loader and wrapper.</li>
<li>Run Manco .NET Obfuscator.</li>
<li>Use ImportantFunctionality.moproj project file to obfuscate encrypted assembly.</li>
<li>From License Manager use EncryptObfuscated_EncryptSettings.xml project file to encrypt obfuscated assembly.</li>
<li>Build Visual Studio project for your application which uses encrypted assembly.</li>
<li>From Manco .NET Obfuscator use EncryptedAssembly.moproj project file to obfuscate your application.</li>
</ol>“Professional Edition” (and high) of the Manco .NET Licensing System includes license for Encryptor. This is console application which performs encryption operations from the command line. It makes possible automation of the encryption during application building process (from the Visual Studio, for example). You can call Encryptor and command line mode of the obfuscator from the Post-build event:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij5XBibGo43XyXres5t-qVEGlkiLxasWNvJ999pnFnl9fkmkcwBXj7bz4YHxhOuMP-8hsRW6Bvsjs5iQ5IOjBztD9PtlqCfA0NPJNL44YG-TGRzRSHdb6axqSOwpH4wDVMIuZevAXvC4EM/s1600/VS2010EncryptedAssemblySolution.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><ol style="text-align: left;"><li>Run Visual Studio and open solution with your application and encrypted assembly project. For example: <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij5XBibGo43XyXres5t-qVEGlkiLxasWNvJ999pnFnl9fkmkcwBXj7bz4YHxhOuMP-8hsRW6Bvsjs5iQ5IOjBztD9PtlqCfA0NPJNL44YG-TGRzRSHdb6axqSOwpH4wDVMIuZevAXvC4EM/s1600/VS2010EncryptedAssemblySolution.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij5XBibGo43XyXres5t-qVEGlkiLxasWNvJ999pnFnl9fkmkcwBXj7bz4YHxhOuMP-8hsRW6Bvsjs5iQ5IOjBztD9PtlqCfA0NPJNL44YG-TGRzRSHdb6axqSOwpH4wDVMIuZevAXvC4EM/s320/VS2010EncryptedAssemblySolution.png" width="238" /></a></li>
<li>Open properties page of the ImportantFunctionality project and go to the “Build Events” tab.</li>
<li>In the “Post-build event command line” text box enter commands to call Encryptor and obfuscator:</li>
<ol type="a"><li>"C:\Program Files (x86)\Manco Software\Manco .NET Licensing System\Tools\Manco.Licensing.Encryptor.exe" $(ProjectDir)Encrypted\CreateLoaderAndWraper_EncryptSettings.xml</li>
<li>"C:\Program Files (x86)\Manco Software\Manco .NET Obfuscator\Manco.Obfuscator.Console.exe" $(ProjectDir)ImportantFunctionality.moproj</li>
<li>"C:\Program Files (x86)\Manco Software\Manco .NET Licensing System\Tools\Manco.Licensing.Encryptor.exe" $(ProjectDir)Encrypted\EncryptObfuscated_EncryptSettings.xml<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVh0Qh3vnXBOgxJXbs8l8dKfdJ2z__uUxNR9Ak_k2SY3plQQV2a2sDraCMMN-iV97Nopwt9eR-cPIH1KY6RdAJEQx-zdi1BfTr4_yAJAtQ5cdWLkk66LpEt-htFrKkFIUUtwvOsezLyFhl/s1600/VS2010EncryptedAssemblyBuildEvents.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVh0Qh3vnXBOgxJXbs8l8dKfdJ2z__uUxNR9Ak_k2SY3plQQV2a2sDraCMMN-iV97Nopwt9eR-cPIH1KY6RdAJEQx-zdi1BfTr4_yAJAtQ5cdWLkk66LpEt-htFrKkFIUUtwvOsezLyFhl/s320/VS2010EncryptedAssemblyBuildEvents.png" width="320" /></a></li>
</ol><li>Open properties page of the EncryptedAssemblyCS project and go to the “Build Events” tab.</li>
<li>In the “Post-build event command line” text box enter command to call obfuscator:<br />
"C:\Program Files (x86)\Manco Software\Manco .NET Obfuscator\Manco.Obfuscator.Console.exe" $(ProjectDir)EncryptAssemblyCS.moproj</li>
</ol>Now all necessary encryption and obfuscation things are automated in the Visual Studio build process. So you need not to run License Manager and/or Manco .NET Obfuscator GUI to encrypt and obfuscate your code. It will be done automatically when Visual Studio build your solution.<br />
<br />
</div>amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com1tag:blogger.com,1999:blog-4524394688690192568.post-13773459587494079192011-03-28T00:41:00.000-07:002011-03-28T00:41:39.088-07:00Version 6.1 of the Manco .NET Licensing System released<div dir="ltr" style="text-align: left;" trbidi="on">Manco .NET Licensing System version 6.1 is available now. You can get 15-days trial version at the <a href="http://www.mancosoftware.com/licensing/download.htm">http://www.mancosoftware.com/licensing/download.htm</a><br />
<br />
List of the most significant changes made in new version:<br />
<br />
1. Added {d} Unlock Key format string. It includes Subscription Days and Override Id to the Unlock Key. The protection library check Override ID and set subscription expiration date rule using current date and subscription days set in the Unlock Key. In this case date when subscription expires will be calculated during license validation. This licensing schema provides best results in conjunction with license activation.<br />
<br />
2. Activation Web Service has been extended with ability to identify subscription state when activate and validate license online. If subscription expired license will not activated. During product activation subscription end date is included to the Activation Key and passed to the protection library for local validation.<br />
<br />
3. Added command line tool to encrypt files and source code (Encryptor). This tool is awailable in professional edition and high.<br />
<br />
4. Added support for relative pathes in the file encryption and source code encryption projects.<br />
<br />
5. Added {l} and {c} Unlock Key format strings to allow including of the not encrypted license type ID and customer ID to the Unlock Key.<br />
<br />
6. Allowed binding of more then 1 letter of every type to the version node.<br />
<br />
7. Allowed using of the "Product Edition" license rule from the non-Unlock Key based licenses.<br />
<br />
8. Implemented support of the custom user data editor in the "License Shop" with ability to load external DLLs.<br />
<br />
9. Added support of the C++ for "Create Loader and Wrapper" operation in "Encrypt File" window.<br />
<br />
10. Added ability to fill "Subscription Date", "Subscription Days" and "Override ID" fields in the "Generate Unlock Key Bundle" dialog.<br />
<br />
11. Added ability to preview e-Mail body using specified e-Mail configuration. <br />
<br />
12. Added ability to get raw e-Mail data for the specified sale. It is useful for debugging e-Mail XSLT. <br />
<br />
13. Added few UI extensions to the License Manager.<br />
<br />
14. Added few UI extensions to the License Shop.<br />
<br />
15. Few bugs have been fixed. </div>amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-90189618048155878372011-03-16T00:48:00.000-07:002011-03-16T00:48:27.289-07:00Running License Shop<div dir="ltr" style="text-align: left;" trbidi="on">License Shop is the web-based (Silverlight) tools for complete customer and license management. Using it you can issue licenses and keys outside your office just using any Silverlight-ready PC. You even can setup a bunch of sale persons around the world who will do it for you 24x7 just using single “License Shop” license. Just manage your sale persons to use “License Shop” on 1 in a time basis. We don’t allow concurrent using of the single license. But “License Shop” is not bound to the particular PC (it is bound to the AWS installation), so you can use single license anytime anywhere on 1 license - 1 concurrent connection basis.<br />
<br />
To start instance of the “License Shop” you should have Microsoft Silverlight installed into your PC. Open your favorite browser and enter URL for the “License Shop”. It is located in the virtual directory where Activation Web Server is located. So start URL can look like the following:<br />
<a href="http://www.yourdomain.com/ActivationService/LicenseShop.aspx">http://www.yourdomain.com/ActivationService/LicenseShop.aspx</a><br />
You will see “License Shop” login window:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxb0LZI2Q1X4HesH9fd3yInwHlQlcs98lLksJJSR4wXCzdJU828GH9ulaEXBTKIP0_q9fkcmTel0d2LJRSlMNnNf6hG04GpHElqZwecl3cV0Pi18_gYUimr0LyotOD4TWpkJZMoPoodb-z/s1600/LicenseShopLogin.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="300" r6="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxb0LZI2Q1X4HesH9fd3yInwHlQlcs98lLksJJSR4wXCzdJU828GH9ulaEXBTKIP0_q9fkcmTel0d2LJRSlMNnNf6hG04GpHElqZwecl3cV0Pi18_gYUimr0LyotOD4TWpkJZMoPoodb-z/s400/LicenseShopLogin.png" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Enter user name and password (the default user name and password for License Shop are license/license) and click “Login” button. The UI of the “License Shop” is similar to the License Manager, so you can use same approaches to issue licenses and manage clients.<br />
<br />
When you need close “License Shop” window you should follow this instruction, otherwise active connection will not be closed and you will not be able to enter “License Shop” again. To close “License Shop” window do following:<br />
<br />
Close browser window. When you close browser with “License Shop” you will see standard close dialog. Wait while you will see this window:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2v7GgLXIuRPMi948clBW9FwMEjWrZVE-FtSLnjHkPSZb497Qx2TN3hv9Bdv1s97dLySXpn1M6aTrzm19UJFJs1vNZqnBft8eKsKgv_rfMX-nP2P0jPWp_iusc_Vd_a0N5BSZUhiPZwlo0/s1600/LicenseShopSafeToCloseBrowser.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="94" r6="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2v7GgLXIuRPMi948clBW9FwMEjWrZVE-FtSLnjHkPSZb497Qx2TN3hv9Bdv1s97dLySXpn1M6aTrzm19UJFJs1vNZqnBft8eKsKgv_rfMX-nP2P0jPWp_iusc_Vd_a0N5BSZUhiPZwlo0/s320/LicenseShopSafeToCloseBrowser.png" width="320" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
Then click “OK” in the close dialog.<br />
<br />
If you changed data in the “License Shop” and didn’t save changes you will see additional dialog about unsaved data:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhws4gTsEDDkaKGX_OQcBNCvaUS6MSj23VxwId9Wh7JZkFMiR5PzurDPfFvjfJl1f_wP2KSdEsrmArFwhCRlXb-EI0oPCzMbplo0P7eQmRbM45kf5Ot17OieACvlEzlzBwiZTmY3Z0Swvuk/s1600/LicenseShopUnsavedDataDialog.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="125" r6="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhws4gTsEDDkaKGX_OQcBNCvaUS6MSj23VxwId9Wh7JZkFMiR5PzurDPfFvjfJl1f_wP2KSdEsrmArFwhCRlXb-EI0oPCzMbplo0P7eQmRbM45kf5Ot17OieACvlEzlzBwiZTmY3Z0Swvuk/s320/LicenseShopUnsavedDataDialog.png" width="320" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div> </div><div>In this case you should do following: </div><ol style="text-align: left;"><li>Click “Cancel” in the standard close dialog.</li>
<li>Click “Yes” to save data or “No” to bypass changes.</li>
<li>Wait while you see “It is safe to close browser now.” Message.</li>
</ol><div>Close browser with “License Shop” and click “OK” in the standard close dialog.</div><div></div></div>amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-60303722316947692162011-01-03T03:50:00.000-08:002011-01-03T03:50:10.295-08:00Manco .NET Licensing System version 6.0.1 released<div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">Manco .NET Licensing System version 6.0.1 is available now. You can get 15-days trial version at the </span><a href="http://www.mancosoftware.com/licensing/download.htm"><span style="color: blue; font-family: Calibri;">http://www.mancosoftware.com/licensing/download.htm</span></a></div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">List of the most significant changes made in the new version:</span></div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">1. In this version we added new part of the Manco .NET Licensing System. We call it “License Shop”. This is web-based (Silverlight) tools for complete customer and license management. Using it you can issue licenses and keys outside your office just using any Silverlight-ready PC. You even can setup a bunch of sale persons around the world who will do it for you 24x7 just using single “License Shop” license. Just manage your sale persons to use “License Shop” on 1 in a time basis. We don’t allow concurrent using of the single license. But “License Shop” is not bound to the particular PC (it is bound to the AWS installation), so you can use single license anytime anywhere on 1 license - 1 concurrent connection basis. </span></div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">UI of the License Shop is similar to the UI of the current version of the License Manager. So it will be easy to you to switch between these 2 tools.</span></div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">Starting from version 6.0.1.0 of our licensing system Activation Web Service license will include 1 free license for “License Shop”. So you can start your web-based licensing experience without any extra charge. All customers who bought version 6.0 or have active subscription will get upgrade to version 6.0.1.0 for free.</span></div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">Note: this version of the License Shop does not support custom user data edit controls.</span></div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">2. Added new web-methods to the Activation Web Service which provides functionality necessary for the "License Shop".</span></div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoPlainText" style="margin: 0cm 0cm 0pt;"><span style="font-family: Calibri;">3. Few bugs have been fixed.</span></div>amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-13029458970307135002010-12-29T02:23:00.000-08:002010-12-29T02:23:23.790-08:00License Shop will be released soonWe are going to release new part of the Manco .NET Licensing System soon. We call it “License Shop”. This is web-based (Silverlight) tools for complete customer and license management. Using it you can issue licenses and keys outside your office just using any Silverlight-ready PC. You even can setup a bunch of sale persons around the world who will do it for you 24x7 just using single “License Shop” license. Just manage your sale persons to use “License Shop” on 1 in a time basis. We don’t allow concurrent using of the single license. But “License Shop” is not bound to the particular PC (it is bound to the AWS installation), so you can use single license anytime anywhere on 1 license - 1 concurrent connection basis. <br />
Starting from version 6.0.1.0 of our licensing system Activation Web Service license will include 1 free license for “License Shop”. So you can start your web-based licensing experience without any extra charge. All customers who bought version 6.0 or have active subscription will get upgrade to version 6.0.1.0 for free.<br />
<br />
Here are few “License Shop” screenshots:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHQXQe6caFX4LBs8_-LoZYwIU4uH2V8xeMd0QUjyVzd6HiIF7eWa6xjTj7rzGMUpr42UJ0mtek1f_iwxPxA96OyukF9hLpduIWBCX13QjBOau8-RDGqq7gP1GKralc0mHw3qv_hY2qJ4ju/s1600/LicenseShopLogin.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHQXQe6caFX4LBs8_-LoZYwIU4uH2V8xeMd0QUjyVzd6HiIF7eWa6xjTj7rzGMUpr42UJ0mtek1f_iwxPxA96OyukF9hLpduIWBCX13QjBOau8-RDGqq7gP1GKralc0mHw3qv_hY2qJ4ju/s400/LicenseShopLogin.png" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFwXPFWZYazT_2NqE9nWA9znhCOlpZ-1H0izSSlz69fuC_4cAQ8eZOpCyFteW71sQ1YmJK0r1flzRJ_-tc1weWtsxyduBtoSMHQb9YOArwIoB7jQJFy-NAEzKGIz7wyPaZi2PyFWpbVZjv/s1600/LicenseShopSalesView.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="306" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFwXPFWZYazT_2NqE9nWA9znhCOlpZ-1H0izSSlz69fuC_4cAQ8eZOpCyFteW71sQ1YmJK0r1flzRJ_-tc1weWtsxyduBtoSMHQb9YOArwIoB7jQJFy-NAEzKGIz7wyPaZi2PyFWpbVZjv/s400/LicenseShopSalesView.png" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIo5lqoyj03P0h4cUUr_gJNgbPmVT4feOR5HmtS82uMPnueVPAtsQRmv94R_TagOHHVOlO79Hg4zwJNTaLCF1laWPiMgh1ncF84nDmqTLrEPFTxaPXgoJeJhHgZTKo-P4xYnrFsR0ba2SZ/s1600/LicenseShopCustomers.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="326" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIo5lqoyj03P0h4cUUr_gJNgbPmVT4feOR5HmtS82uMPnueVPAtsQRmv94R_TagOHHVOlO79Hg4zwJNTaLCF1laWPiMgh1ncF84nDmqTLrEPFTxaPXgoJeJhHgZTKo-P4xYnrFsR0ba2SZ/s400/LicenseShopCustomers.png" width="400" /></a></div>amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-63584172298216838222010-12-10T04:11:00.000-08:002010-12-10T04:11:43.252-08:00How to debug custom "User Data" edit control.Sometimes user data or product edition are included to the Unlock Key has complex format. For example, user data can contain specification of the product edition and number of the concurrent sessions allowed for ASP.NET application. In this case using of the simple text box becomes a quite problematic for sales persons. They should remember format of the user data and enter something like “PE043” every time when customer buy Professional Edition with 43 concurrent sessions allowed.<br />
<br />
License Manager allows you creation and using of the custom controls to simplify editing of the complex user data. The process of creation of the custom edit control is described in our product documentation. Mostly those controls are quite simple and work without any problems. But sometimes it is necessary to debug functionality of the custom edit control. You can do it using Visual Studio.<br />
<br />
Open your solution in the VS2010. Then run License Manager with your control in use. In the VS2010 main menu go to the Debug->Attach to Process:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD3fSfCBTns5UVaSDUYEWQIoyeNeqecHnYZ6Mfo5cPGKvLYbiqg_nsAWA6L-7GOqEh58PfM2E5ynhGkLHOI_YEalf7hP4NR2qoaSevORGqUmnrwkrsh65HjVFszrGdXITOCDxSwvmHGIaI/s1600/VS2010AttachToProcess.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="261" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD3fSfCBTns5UVaSDUYEWQIoyeNeqecHnYZ6Mfo5cPGKvLYbiqg_nsAWA6L-7GOqEh58PfM2E5ynhGkLHOI_YEalf7hP4NR2qoaSevORGqUmnrwkrsh65HjVFszrGdXITOCDxSwvmHGIaI/s400/VS2010AttachToProcess.png" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
In the “Attach to Process” dialog select “Manco.Licensing.LicenseManager” process and click “Attach” button:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVeDaxhdDAnMVtKtLl9I1YpwCwTIoATY3xytsn3a9mWJ2XnTZvLYSyv2ZJCE23P_KbL73DVVm31EFmJbymkvwGxTe5nf_6WrAdnPdCTN_LhyB0xzxcml-Mdlx9nGBW_TAs4NgLzaBBS3GT/s1600/VS2010AttachToProcessDialog.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="270" n4="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVeDaxhdDAnMVtKtLl9I1YpwCwTIoATY3xytsn3a9mWJ2XnTZvLYSyv2ZJCE23P_KbL73DVVm31EFmJbymkvwGxTe5nf_6WrAdnPdCTN_LhyB0xzxcml-Mdlx9nGBW_TAs4NgLzaBBS3GT/s400/VS2010AttachToProcessDialog.png" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
After that you will be able to debug your control. <br />
<br />
Don’t forget to replace DLL near the License Manager every time you change something in your control.amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-78868268664052234242010-11-14T00:00:00.000-08:002010-11-14T00:00:11.986-08:0064-bit OS and License Manager database.In the present days many people are moving to the 64-bit OS and put old versions of the License Manager to this platform. There are not any problems if MS SQL database is in use, but when the License Manager database is MS Access you run into the difficulties. If you run our application on 64-bit platform with MS Access database you get ‘Microsoft.Jet.OLEDB.4.0 provider is not registered on the local machine’ exception.<br />
<br />
There is not 64-bit version of Jet and Microsoft has no plans to create a 64-bit version of Jet. So you can’t use License Manager with MS Access database on 64-bit platform. Fortunately our product supports using of the MS SQL database, either Express version or fully functional server. You can find instructions on how to setup License Manager to use MS SQL here: <a href="http://www.mancosoftware.com/licensing/faq.htm">www.mancosoftware.com/licensing/faq.htm</a><br />
<br />
It is not difficult to get License Manager using the MS SQL, but you definitely would like to move your existing data from MS Access database to MS SQL as well. It was a bit problematic before we release version 6.0 of our software. Now there is a trick which can help you with your old data. There is a part of the version 6.0 which is called Database Manager. Using this application you can copy all data from your MS Access database to the MS SQL Express database even on 64-bit OS. For copy operation Database Manager supports all versions of database starting from 3.2. So you can use it to move your existing data to the new database. This application is free to use. You can download it from our official site at the <a href="http://www.mancosoftware.com/licensing/download.htm">http://www.mancosoftware.com/licensing/download.htm</a>. Below you can find extraction from the version 6.0 documentation which describes how the Database Manager can be used to copy data from MS Access to MS SQL Express. <br />
<strong>Using of the Database Manager</strong><br />
<br />
Database Manager is the application which install new or upgrade existing database, and allows copy licensing data from one database to another. Current version of the Database Manager supports MS SQL Server and MS SQL Express for all operations and MS Access as data source for copy operation. Support of the MS Access database makes possible upgrade of your database from any version starting from 3.2 to current version.<br />
<br />
There are several scenarios when you need to use Database Manager, but there is one step, which is common for all these scenarios. Before you can perform any operation you should create description of the database connection.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyAc-eKThLd2zSo503M1AaoqGwTgSS52LEqnvLf469_gZG6woxVU7m_lYKOUM09Lcl3i-xpk8tKi-RWZrpyc_EoQL_2RjuT8kpfFtD_JQaTJbxquPoAebdYL7O0b1i5dLMjt4joq2Q86I7/s1600/DatabaseManagerEmpty.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="321" px="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyAc-eKThLd2zSo503M1AaoqGwTgSS52LEqnvLf469_gZG6woxVU7m_lYKOUM09Lcl3i-xpk8tKi-RWZrpyc_EoQL_2RjuT8kpfFtD_JQaTJbxquPoAebdYL7O0b1i5dLMjt4joq2Q86I7/s400/DatabaseManagerEmpty.png" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Click "New" toolbar button. Enter name of the database connection (can be any) and select database type. You can simple enter connection string in the correspondent column, or click "..." button in the edit mode and edit connection string using database connection dialog:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP20ZoZHp5O1xZ_yyYW95iCSA9qstCvB7FTTJdcE8GErleq69SDKpI2Dq-kNqFN_xTVepvtdq02bJ50LKBcTJgnflIgak0P0vP1agLyXnD7z-EGQrad30tOkjFfNQnM8DSudZpPsjowmZT/s1600/DatabaseConnectionDialogSQL.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="225" px="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP20ZoZHp5O1xZ_yyYW95iCSA9qstCvB7FTTJdcE8GErleq69SDKpI2Dq-kNqFN_xTVepvtdq02bJ50LKBcTJgnflIgak0P0vP1agLyXnD7z-EGQrad30tOkjFfNQnM8DSudZpPsjowmZT/s400/DatabaseConnectionDialogSQL.png" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
You always can test your database connection by clicking the “Test” button. Click “OK” to finish edition of the connection string.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUlXDfPwOAWB8B81DAPrace1JJxqRumn89UCLEaHgb5yZ652YIFb2QglJKpPLyXJ_2hedEk_2oioxBlf0YdtotyUdtpUc3AbTsJ7sCspMNo1hnv7nQHX8NYmAomGBMLfmsMnUmm2bUtiww/s1600/DatabaseManagerMSSQLDbConnection.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="321" px="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUlXDfPwOAWB8B81DAPrace1JJxqRumn89UCLEaHgb5yZ652YIFb2QglJKpPLyXJ_2hedEk_2oioxBlf0YdtotyUdtpUc3AbTsJ7sCspMNo1hnv7nQHX8NYmAomGBMLfmsMnUmm2bUtiww/s400/DatabaseManagerMSSQLDbConnection.png" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
1. All versions of the Manco .NET Licensing System starting from 3.2 and up to the 5.0 were provided with both MS Access and MS SQL Express database files. The MS SQL Express database file is located at the same place with MS Access one. Create database connections for both: MS Access and MS SQL Express databases:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVzn8PcG8o0TRPCxJHkcPtjU_H2eb-tx7XH_BR-kQqnxwXbyV5MvmzpvVFtXb4U48WgyajXN6O7xkhcC2gwtZH2WHhiGs4wmSqzb6Sh1exKnDXWV2z-P1gQIqrf9DfEbPMNLXu2T-C7aG6/s1600/DatabaseConnectionDialogAccess.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="223" px="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVzn8PcG8o0TRPCxJHkcPtjU_H2eb-tx7XH_BR-kQqnxwXbyV5MvmzpvVFtXb4U48WgyajXN6O7xkhcC2gwtZH2WHhiGs4wmSqzb6Sh1exKnDXWV2z-P1gQIqrf9DfEbPMNLXu2T-C7aG6/s400/DatabaseConnectionDialogAccess.png" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP20ZoZHp5O1xZ_yyYW95iCSA9qstCvB7FTTJdcE8GErleq69SDKpI2Dq-kNqFN_xTVepvtdq02bJ50LKBcTJgnflIgak0P0vP1agLyXnD7z-EGQrad30tOkjFfNQnM8DSudZpPsjowmZT/s1600/DatabaseConnectionDialogSQL.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="225" px="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP20ZoZHp5O1xZ_yyYW95iCSA9qstCvB7FTTJdcE8GErleq69SDKpI2Dq-kNqFN_xTVepvtdq02bJ50LKBcTJgnflIgak0P0vP1agLyXnD7z-EGQrad30tOkjFfNQnM8DSudZpPsjowmZT/s400/DatabaseConnectionDialogSQL.png" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrysukFTz0FCoqQBifgA0N3MBxWDgHKjiCOarIBUiIn0EqhWF0nrGEO3Oy-RwQN4rg04ciRj4X-hHHhrpuBQsU_Aw4ssLASBvoO6AFWTa1OWTrWEAOQAxTwTPL0aQLatgbcQOAO9_MDlhA/s1600/DatabaseManager2Connections.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="292" px="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrysukFTz0FCoqQBifgA0N3MBxWDgHKjiCOarIBUiIn0EqhWF0nrGEO3Oy-RwQN4rg04ciRj4X-hHHhrpuBQsU_Aw4ssLASBvoO6AFWTa1OWTrWEAOQAxTwTPL0aQLatgbcQOAO9_MDlhA/s400/DatabaseManager2Connections.png" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
2. Switch to the “Copy data” tab.<br />
3. Select your Access database as data source.<br />
4. Select your MS SQL Express database as destination.<br />
5. Find “Roles”, “UserName” and “UsersInRoles” databases.<br />
6. Check checkboxes in the “Clear destination” column for these 3 tables.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSiRz5cmsmR1W3kxIEHVU6e2JMJ7hFRnnshfIqA0KdlS4CQ43RwrX2FynfU-7ufph7bY3Jb2MnB8ZAl776VEau7e7zyO-8dATnhNwpKxI3YOkVD2Z11UseMBqf2MQ13pfpfJtZ4xuQGSnC/s1600/DatabaseManagerUserNameChecked.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="293" px="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSiRz5cmsmR1W3kxIEHVU6e2JMJ7hFRnnshfIqA0KdlS4CQ43RwrX2FynfU-7ufph7bY3Jb2MnB8ZAl776VEau7e7zyO-8dATnhNwpKxI3YOkVD2Z11UseMBqf2MQ13pfpfJtZ4xuQGSnC/s400/DatabaseManagerUserNameChecked.png" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
7. Click "Copy" button to copy data from the MS Access database to the MS SQL Express database. Data from the MS Access database will be copied to the MS SQL Express database.amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0tag:blogger.com,1999:blog-4524394688690192568.post-338739626304574412010-10-24T00:39:00.000-07:002010-10-24T00:59:19.910-07:00Protect ASP.NET application using name of the domain specified in the HTTP request.Recently I’ve answered several times the question about protection of the ASP.NET application using name of the domain specified in the HTTP request. Since this licensing schema isn’t described in our 200-pages documentation yet I’ve decided to describe it in my blog. I suppose that you've read already “Quick start using ‘Unlock Key’ licensing schema” and “Protect ASP.NET application using ‘Unlock Key with Activation’ licensing schema” topics in our product documentation, so I will describe only things are specific for this licensing schema.<br />
<div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;">The first major difference is the way how you deliver licensing information to the customer. In this case you provide customer with license file instead of Unlock Key. <br />
The next difference between simple “Unlock Key” and “HTTP request domain” schemas is a number of the license types which are necessary to fully implement schema. The “Unlock Key” requires just 1 license type, the “HTTP request domain” require 2 license types:</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6l4nN9_rj9XEHNgahawhAMbtnSjVP3J9LXK08Y_rThR5IgZ_hFBsCl5ojD2MiveeoUZhGhp0fxmfknZYZHwn83hMrktArAycGOWlJso1Qvfoz-1Sm-BUz47zBXqUU05fDNUJbFjSAa76u/s1600/HTTPRequestDomainLicenseTypes.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6l4nN9_rj9XEHNgahawhAMbtnSjVP3J9LXK08Y_rThR5IgZ_hFBsCl5ojD2MiveeoUZhGhp0fxmfknZYZHwn83hMrktArAycGOWlJso1Qvfoz-1Sm-BUz47zBXqUU05fDNUJbFjSAa76u/s1600/HTTPRequestDomainLicenseTypes.png" /></a></div><div align="left" class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">The “Evaluation” license type is intended to provide your customers with trial version of your product. It could locks like the following:</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHsPwcECjDkTAg6-rB2SqM0oB_k9vyyyOrxdhz3VoFCMjDU41GKzqivoCD4Fuf96aMDyRmmo73XhFxOt9cogB9Qj5Sn9Ifvgcen2Zl5gK-yxDNobUKdDwjUHf8EL0-m8MMEbtUAz4h-QhN/s1600/EvaluationLicenseType.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHsPwcECjDkTAg6-rB2SqM0oB_k9vyyyOrxdhz3VoFCMjDU41GKzqivoCD4Fuf96aMDyRmmo73XhFxOt9cogB9Qj5Sn9Ifvgcen2Zl5gK-yxDNobUKdDwjUHf8EL0-m8MMEbtUAz4h-QhN/s1600/EvaluationLicenseType.png" /></a></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><strong>Expiration Days</strong> – this rule sets number of days during which your product will work in evaluation mode. This license rule can be used to create time-limited evaluation licenses. When someone attempts use licensed product after given number of days it will give “Your license has been expired” exception. </div><strong>Is Evaluation</strong> – this rule indicates, that license is in evaluation mode. Allows you limit some functionality in your product using evaluation status of license.<br />
You have to create only one license file of this type. You even can distribute this license file with your application.<br />
The “Deployment” license type is intended to provide your customers with fully functional version of your product. We don’t include any license rule to this license type. It will use ability of the protection library validate license using custom values:<br />
<div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbc51ygz60yyxZruf1IVgz0knNjc2m8pEKUBIoZJKLIBU4h9Qr0txmIJ3A_4dL67dF2E15pH5Zs7CKVwsziQAWThyphenhyphennaIqTFD7GcD-bB7SG1QHtQyP8Lj8UJky7_q3GfklZyGbT1m03aD8M/s1600/HTTPRequestDomainDeploymentLicenseType.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="238" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbc51ygz60yyxZruf1IVgz0knNjc2m8pEKUBIoZJKLIBU4h9Qr0txmIJ3A_4dL67dF2E15pH5Zs7CKVwsziQAWThyphenhyphennaIqTFD7GcD-bB7SG1QHtQyP8Lj8UJky7_q3GfklZyGbT1m03aD8M/s400/HTTPRequestDomainDeploymentLicenseType.png" width="400" /></a></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">We added 1 custom value “AllowedDomains” into our license type. This custom value will contain comma-separated list of the HTTP domains are allowed.</div>Protection library can compare custom value with one is available in your application as strings (by default) or use specific class class-comparer for this purposes. This class must implement IComparer<string> (IComparer(of String)) interface. Since we suppose that “AllowedDomains” custom value can contain list of the domains, then we should create own class-comparer which will walk through the list.<br />
Add new RequestDomainComparer class into your project:<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="font-family: Calibri;">[C#]</span></span></b></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">///</span><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><summary></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">///</span><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> Compare Domain Name from the HTTP request.</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">///</span><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> </span><span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></summary></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">public</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> <span style="color: blue;">class</span> <span style="color: #2b91af;">RequestDomainComparer</span> : <span style="color: #2b91af;">IComparer</span><<span style="color: blue;">string</span>></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">private</span> Manco.Licensing.<span style="color: #2b91af;">License</span> license;</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> Creates instance of the RequestDomainComparer class.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"></summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><param name="license"></span><span style="color: green;">License object.</span><span style="color: grey;"></param></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">public</span> RequestDomainComparer(Manco.Licensing.<span style="color: #2b91af;">License</span> license)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">this</span>.license = license;</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>}</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> Compare value set from application with value from </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: grey;">///</span><span style="color: green;"> </span></span>the license file.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"></summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><param name="valueFromApplication"></span><span style="color: green;">Value set from application: </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: grey;">///</span><span style="color: green;"> </span></span>domain name from the HTTP request.</span><span style="color: grey;"></param></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><param name="customValueFromLicenseFile"></span><span style="color: green;">Custom value set in </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: grey;">///</span><span style="color: green;"> </span></span>the license</span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"> </span></span>file.</span><span style="color: grey;"></param></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><returns></span><span style="color: green;">0 if domain rom HTTP request is in the list </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: grey;">///</span><span style="color: green;"> </span></span>of the allowed </span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;">domains. -1 otherwise.</span><span style="color: grey;"></returns></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">public</span> <span style="color: blue;">int</span> Compare(</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: blue;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> <span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span></span></span></span>string</span> valueFromApplication, </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: blue;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> <span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span></span></span></span></span></span><span style="color: blue;">string</span> customValueFromLicenseFile)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 1;"> </span><span style="color: blue;">if</span> (license.IsEvaluation)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 1;"> </span>{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span><span style="color: green;">// During evaluation time we </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: black;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span></span><span style="color: green;">// </span></span>allow only localhost domain.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span><span style="color: blue;">return</span> valueFromApplication</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> <span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span></span><span style="mso-tab-count: 2;"> </span></span>.Trim()</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> <span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span></span><span style="mso-tab-count: 2;"> </span></span></span>.ToLowerInvariant()</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> <span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span></span><span style="mso-tab-count: 2;"> </span></span></span>.CompareTo(<span style="color: #a31515;">"localhost"</span>);</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 1;"> </span>}</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 1;"> </span><span style="color: blue;">else</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 1;"> </span>{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span><span style="color: blue;">int</span> retVal = -1;</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span><span style="color: blue;">string</span> domainFromRequest = valueFromApplication</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> <span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span></span><span style="mso-tab-count: 2;"> </span></span></span>.Trim()</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> <span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span></span><span style="mso-tab-count: 2;"> </span></span></span>.ToLowerInvariant();</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span><span style="color: blue;">if</span> (domainFromRequest == <span style="color: #a31515;">"localhost"</span>)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span>{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span><span style="color: green;">// "localhost" domain name is always allowed.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span>retVal = 0;</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span>}</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span><span style="color: blue;">else</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span>{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span><span style="color: green;">// We suppose that custom value in the </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: black;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span></span><span style="color: green;">// </span></span>license file</span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"> can contain list of </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: black;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span></span><span style="color: green;">// </span></span>the domains separated by comma.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span><span style="color: blue;">string</span>[] domainList = </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span> </span><span style="mso-tab-count: 3;"> </span></span>customValueFromLicenseFile.Split(<span style="color: #a31515;">','</span>);</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span><span style="color: blue;">foreach</span> (<span style="color: blue;">string</span> allowedDomain <span style="color: blue;">in</span> domainList)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span>{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 4;"> </span><span style="color: blue;">if</span> (allowedDomain</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span> </span><span style="mso-tab-count: 4;"> </span></span>.Trim()</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span> </span><span style="mso-tab-count: 4;"> </span></span>.ToLowerInvariant() </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span> </span><span style="mso-tab-count: 4;"> </span></span></span>== domainFromRequest)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 4;"> </span>{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 5;"> </span><span style="color: green;">// We found allowed domain.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 5;"> </span><span style="color: green;">// Comparision should return 0.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 5;"> </span></span><span style="font-family: Consolas; font-size: 9.5pt;">retVal = 0;</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 5;"> </span><span style="color: blue;">break</span>;</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 4;"> </span>}</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span>}</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span>}</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span><span style="color: blue;">return</span> retVal;</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 1;"> </span>}</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;"><span style="mso-tab-count: 1;"> </span>}</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;">}</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US; mso-fareast-language: RU;"><span style="font-family: Calibri;">[VB.NET]</span></span></b></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">''' </span><span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><summary></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">''' Compare Domain Name from the HTTP request.</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">''' </span><span lang="EN-US" style="color: grey; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></summary></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">Public</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> <span style="color: blue;">Class</span> <span style="color: #2b91af;">RequestDomainComparer</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Implements</span> <span style="color: #2b91af;">IComparer</span>(<span style="color: blue;">Of</span> <span style="color: blue;">String</span>)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Private</span> license <span style="color: blue;">As</span> Manco.Licensing.<span style="color: #2b91af;">License</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' Creates instance of the RequestDomainComparer class.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"></summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><param name="license"></span><span style="color: green;">License object.</span><span style="color: grey;"></param></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Public</span> <span style="color: blue;">Sub</span> <span style="color: blue;">New</span>(<span style="color: blue;">ByVal</span> license <span style="color: blue;">As</span> Manco.Licensing.<span style="color: #2b91af;">License</span>)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Me</span>.license = license</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Sub</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' Compare value set from application with value from </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: green;">''' </span></span>the license file.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"></summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><param name="valueFromApplication"></span><span style="color: green;">Value set from </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: green;">''' </span></span>application: domain name from the HTTP request.</span><span style="color: grey;"></param></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><param name="customValueFromLicenseFile"></span><span style="color: green;">Custom value set </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: green;">''' </span></span>in the license file.</span><span style="color: grey;"></param></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><returns></span><span style="color: green;">0 if domain rom HTTP request is in the list of </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: green;">''' </span></span>the allowed domains. -1 otherwise.</span><span style="color: grey;"></returns></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Public</span> <span style="color: blue;">Function</span> Compare( _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span><span style="color: blue;">ByVal</span> valueFromApplication <span style="color: blue;">As</span> <span style="color: blue;">String</span>, _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: blue;">ByVal</span> customValueFromLicenseFile <span style="color: blue;">As</span> <span style="color: blue;">String</span>) _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="color: blue;">As</span> <span style="color: blue;">Integer</span> <span style="color: blue;">Implements</span> <span style="color: #2b91af;">IComparer</span>(<span style="color: blue;">Of</span> <span style="color: blue;">String</span>).Compare</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">If</span> license.IsEvaluation <span style="color: blue;">Then</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: green;">' During evaluation time we allow </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"><span style="color: black;"> </span></span><span style="color: green;">' </span></span>only localhost domain.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Return</span> valueFromApplication _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span></span>.Trim() _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span></span>.ToLowerInvariant() _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span></span>.CompareTo(<span style="color: #a31515;">"localhost"</span>)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">Else</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Dim</span> retVal <span style="color: blue;">As</span> <span style="color: blue;">Integer</span> = -1</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Dim</span> domainFromRequest <span style="color: blue;">As</span> <span style="color: blue;">String</span> = _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span></span>valueFromApplication _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span></span>.Trim() _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span></span>.ToLowerInvariant()</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">If</span> domainFromRequest = <span style="color: #a31515;">"localhost"</span> <span style="color: blue;">Then</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span><span style="color: green;">' "localhost" domain name is always allowed.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span>retVal = 0</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Else</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span><span style="color: green;">' We suppose that custom value in the </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"><span style="color: black;"> </span></span><span style="color: green;">' </span></span>license file</span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"> can contain list of </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"><span style="color: black;"> </span></span><span style="color: green;">' </span></span>the domains separated by comma.</span></span></div><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 5;"></span></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> <span style="color: blue;">Dim</span> domainList() <span style="color: blue;">As String</span> = _</span></span><br />
<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> customValueFromLicenseFile.Split(",")</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> <span style="color: blue;">For</span> <span style="color: blue;">Each</span> allowedDomain <span style="color: blue;">As String In</span> domainList</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> <span style="color: blue;">If</span> allowedDomain _</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> .Trim() _</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> .ToLowerInvariant() _</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> = domainFromRequest <span style="color: blue;">Then</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> <span style="color: #38761d;">' We found allowed domain.</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: #38761d; mso-tab-count: 3;"> ' Comparision should return 0.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> retVal = 0</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> <span style="color: blue;">Exit For</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: blue; mso-tab-count: 3;"> End If</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: blue; mso-tab-count: 3;"> Next</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">End</span> <span style="color: blue;">If</span></span></div></span></span></span></div></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Return</span> retVal</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">End</span> <span style="color: blue;">If</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Function</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">End</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> <span style="color: blue;">Class</span></span></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><span style="font-family: inherit;">You should extend your protected class (class which implements “ILicenseKeyProvider” interface and contains static license object) with comparer static (shared) variable and new method which will pass name of the domain to compare from your application to the license object:</span></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">[C#]</span></span></b></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">[<span style="color: #2b91af;">LicenseProviderAttribute</span>(<span style="color: blue;">typeof</span>(Manco.Licensing.<span style="color: #2b91af;">LicenseProvider</span>))]</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">public</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> <span style="color: blue;">class</span> <span style="color: #2b91af;">MyAppLicense</span> : <span style="color: #2b91af;">ILicenseKeyProvider</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> License object</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"></summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">private</span> <span style="color: blue;">static</span> Manco.Licensing.<span style="color: #2b91af;">License</span> license = <span style="color: blue;">null</span>;</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> Comparer which will be used to validate </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: grey;">///</span><span style="color: green;"> </span></span>domain in the HTTP request.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"></summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">private</span> <span style="color: blue;">static</span> <span style="color: #2b91af;">RequestDomainComparer</span> comparer = <span style="color: blue;">null</span>;</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> Constructor</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"></summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">public</span> MyAppLicense()</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 1;"> </span><span style="color: blue;">if</span> (license == <span style="color: blue;">null</span>)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 1;"> </span>{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span><span style="color: blue;">try</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span>{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span>license = </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> <span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span></span></span>(Manco.Licensing.<span style="color: #2b91af;">License</span>)<span style="color: #2b91af;">LicenseManager</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: #2b91af;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: black;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> <span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span></span></span></span></span></span>.Validate(<span style="color: blue;">typeof</span>(<span style="color: #2b91af;">MyAppLicense</span>), <span style="color: blue;">this</span>);</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span>license.CallingAssembly = </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> <span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span></span></span></span><span style="color: blue;">this</span>.GetType().Assembly;</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span>license.LicensedAssembly = </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> <span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span></span></span></span><span style="color: blue;">this</span>.GetType().Assembly;</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span>comparer = <span style="color: blue;">new</span> <span style="color: #2b91af;">RequestDomainComparer</span>(license);</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span>}</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span><span style="color: blue;">catch</span> (<span style="color: #2b91af;">FileNotFoundException</span> ex)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span>{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span><span style="color: green;">// License file not found</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span><span style="color: blue;">throw</span> </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span></span><span style="color: blue;">new</span> <span style="color: #2b91af;">Exception</span>(</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span></span><span style="color: #2b91af;">String</span>.Format(<span style="color: #a31515;">"License file was not found!"</span>, </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 3;"> </span></span>ex.FileName));</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 2;"> </span>}</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 1;"> </span>}</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>}</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none; text-indent: 35.4pt;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">…</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> Specify name of the custom value which </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: grey;">///</span><span style="color: green;"> </span></span>will be used to get list of the</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> allowed domains and set value to </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: grey;">///</span><span style="color: green;"> </span></span>search in list (domain name from</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> the HTTP request).</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"></summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><param name="name"></span><span style="color: green;">Name of the custom value </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: grey;">///</span><span style="color: green;"> </span></span>which will be used to get list of the allowed domains.</span><span style="color: grey;"></param></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: grey;">///</span><span style="color: green;"> </span><span style="color: grey;"><param name="value"></span><span style="color: green;">Domain name from the HTTP request.</span><span style="color: grey;"></param></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">public</span> <span style="color: blue;">void</span> SetCustomValueToValidate(<span style="color: blue;">string</span> name, <span style="color: blue;">string</span> value)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span>license.AddCustomValueToValidate(name, value, comparer);</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span><span style="font-family: Consolas; font-size: 9.5pt;">}</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>…</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">[VB.NET]</span></span></b></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><<span style="color: #2b91af;">LicenseProvider</span>(<span style="color: blue;">GetType</span>(Manco.Licensing.<span style="color: #2b91af;">LicenseProvider</span>))> _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">Public</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> <span style="color: blue;">Class</span> <span style="color: #2b91af;">MyAppLicense</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Implements</span> <span style="color: #2b91af;">ILicenseKeyProvider</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' License object</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"></summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Private</span> <span style="color: blue;">Shared</span> license <span style="color: blue;">As</span> Manco.Licensing.<span style="color: #2b91af;">License</span> = <span style="color: blue;">Nothing</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' Comparer which will be used to validate </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: green;">''' </span></span>domain in the HTTP request.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"></summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Private</span> <span style="color: blue;">Shared</span> comparer <span style="color: blue;">As</span> <span style="color: #2b91af;">RequestDomainComparer</span> = <span style="color: blue;">Nothing</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' Constructor</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"></summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Public</span> <span style="color: blue;">Sub</span> <span style="color: blue;">New</span>()</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">If</span> license <span style="color: blue;">Is</span> <span style="color: blue;">Nothing</span> <span style="color: blue;">Then</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Try</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span>license = _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span></span><span style="color: #2b91af;">LicenseManager</span>.Validate(<span style="color: blue;">GetType</span>(<span style="color: #2b91af;">MyAppLicense</span>), _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span></span><span style="color: blue;">Me</span>)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span>license.CallingAssembly = _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span></span>System.Reflection.<span style="color: #2b91af;">Assembly</span>.GetCallingAssembly()</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span>license.LicensedAssembly = _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span></span><span style="color: blue;">Me</span>.GetType().Assembly</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span>comparer = <span style="color: blue;">New</span> <span style="color: #2b91af;">RequestDomainComparer</span>(license)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">Catch</span> ex <span style="color: blue;">As</span> IO.<span style="color: #2b91af;">FileNotFoundException</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span><span style="color: green;">' License file not found</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span><span style="color: blue;">Throw</span> _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span></span><span style="color: blue;">New</span> <span style="color: #2b91af;">Exception</span>( _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span></span><span style="color: blue;">String</span>.Format(<span style="color: #a31515;">"License file was not found!"</span>, _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 4;"> </span></span>ex.FileName))</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 3;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Try</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span><span style="color: blue;">End</span> <span style="color: blue;">If</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Sub</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>…</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' Specify name of the custom value </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: green;">''' </span></span>which will be used to get list of the</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' allowed domains and set value to </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: green;">''' </span></span>search in list (domain name from</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' the HTTP request).</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"></summary></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><param name="name"></span><span style="color: green;">Name of the custom value </span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: green;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span><span style="color: green;">''' </span></span>which will be used to get list of the allowed domains.</span><span style="color: grey;"></param></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">''' </span><span style="color: grey;"><param name="value"></span><span style="color: green;">Domain name from the HTTP request.</span><span style="color: grey;"></param></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Public</span> <span style="color: blue;">Sub</span> SetCustomValueToValidate( _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="color: blue;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"><span style="color: black;"> </span></span></span>ByVal</span> name <span style="color: blue;">As</span> <span style="color: blue;">String</span>, _</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span></span><span style="color: blue;">ByVal</span> value <span style="color: blue;">As</span> <span style="color: blue;">String</span>)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 2;"> </span>license.AddCustomValueToValidate(name, value, comparer)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">End</span> <span style="color: blue;">Sub</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span>…</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">End</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> <span style="color: blue;">Class</span></span></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">Depends on your needs you can validate license on per-session or on per-page basis. The validation code could looks like the following:</div><br />
<div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">[C#]</span></span></b></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">string</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> hostName = <span style="color: #2b91af;">HttpContext</span>.Current.Request.Url.DnsSafeHost;</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">m_oLicense.SetCustomValueToValidate(<span style="color: #a31515;">"AllowedDomains"</span>, hostName);</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">// Check that license is valid and not expired.</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">if</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> (m_oLicense.IsExpired || !m_oLicense.IsValid)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">{</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">// If license have been expired or it is not valid</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">// then we shouldn't allow session start.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">// Throw exception.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">throw</span> <span style="color: blue;">new</span> <span style="color: #2b91af;">Exception</span>(<span style="color: #a31515;">"Illegal use of this application: no valid License found"</span>);</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Consolas; font-size: 9.5pt;">}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">[VB.NET]</span></span></b></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">Dim</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> hostName <span style="color: blue;">As</span> <span style="color: blue;">String</span> = <span style="color: #2b91af;">HttpContext</span>.Current.Request.Url.DnsSafeHost</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">m_oLicense.SetCustomValueToValidate(<span style="color: #a31515;">"AllowedDomains"</span>, hostName)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">' Check that license is valid and not expired.</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">If</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> m_oLicense.IsExpired <span style="color: blue;">Or</span> <span style="color: blue;">Not</span> m_oLicense.IsValid <span style="color: blue;">Then</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">' If license have been expired or it is not valid</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">' then we shouldn't allow session start.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: green;">' Throw exception.</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"><span style="mso-tab-count: 1;"> </span><span style="color: blue;">Throw</span> <span style="color: blue;">New</span> <span style="color: #2b91af;">Exception</span>(<span style="color: #a31515;">"Illegal use of this application: no valid License found"</span>)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;">End</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"> <span style="color: blue;">If</span></span></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"><br />
</div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;"></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;">When you create deployment licenses for your customers you should specify list of the HTTP domains are allowed in the request URL. For example: </div><br />
<br />
<div class="separator" style="clear: both; text-align: center;"></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSj7jBm0ZJuNGAR5brwUoG4QwP52q2T3BafuqOKgJa83Efn5dLVtfNCvfzr_kNe_OJ4LqgQBBlflLOfPqrDyPGr9Rmwd1Qzefkks_iHx1dEoG_rc7szu_VepSytlVFSSG_VMxEPT5fFaq1/s1600/HTTPRequestDomainSetDomainList.png" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="173" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSj7jBm0ZJuNGAR5brwUoG4QwP52q2T3BafuqOKgJa83Efn5dLVtfNCvfzr_kNe_OJ4LqgQBBlflLOfPqrDyPGr9Rmwd1Qzefkks_iHx1dEoG_rc7szu_VepSytlVFSSG_VMxEPT5fFaq1/s400/HTTPRequestDomainSetDomainList.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: left;">You can find sample solutions which implements this licensing schema on our official site at the <a href="http://www.mancosoftware.com/licensing/download.htm">http://www.mancosoftware.com/licensing/download.htm</a></div>amurzovhttp://www.blogger.com/profile/02601282139134311199noreply@blogger.com0