You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
224 lines
9.9 KiB
224 lines
9.9 KiB
using KGIS.Framework.Core.Services; |
|
using KGIS.Framework.Platform.Interface; |
|
using KGIS.Framework.Utils; |
|
using KGIS.Framework.Utils.Helper; |
|
using Kingo.Core.Authorize; |
|
using Kingo.PlatformPlugin.Services; |
|
using Kingo.PluginServiceInterface; |
|
using System; |
|
using System.Configuration; |
|
using System.Diagnostics; |
|
using System.IO; |
|
using System.Reflection; |
|
using System.Runtime.InteropServices; |
|
using System.Threading; |
|
using System.Windows.Forms; |
|
using UIShell.OSGi; |
|
|
|
namespace Kingo.PlatformPlugin |
|
{ |
|
public class Activator : IBundleActivator |
|
{ |
|
private IPlatformService _platformService; |
|
private IOutPutMsg _outputMsg; |
|
private IDockViewService dockViewService; |
|
|
|
public void Start(IBundleContext context) |
|
{ |
|
try |
|
{ |
|
|
|
#if DEBUG |
|
_platformService = new PlatformService(context as IBundleContext); |
|
(context as IBundleContext).AddService(_platformService); |
|
dockViewService = new DockViewService(); |
|
(context as IBundleContext).AddService(dockViewService); |
|
#else |
|
VerifyLic(context); |
|
#endif |
|
//RunIDService2.Instance.Verify(AuthorizeType.多合一授权, "BGDCPRO", "300", "3x"); |
|
|
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug(ex); |
|
} |
|
//System.Threading.Thread.Sleep(5000); |
|
} |
|
//public bool Verify(AuthorizeType authorizeType, string productid, string exeVersion, string authorizefileveesion) |
|
//{ |
|
// //var jqm = HardwareIDHelper.GetHardwareID2(); |
|
// string[] licpath = System.IO.Directory.GetFiles(System.Environment.CurrentDirectory, "*.lic", System.IO.SearchOption.TopDirectoryOnly); |
|
// if (licpath.Length == 0) return false; |
|
// foreach (var item in licpath) |
|
// { |
|
|
|
// AuthorizeHelper authorizeHelper = new AuthorizeHelper(authorizeType, productid, exeVersion, authorizefileveesion, item); |
|
// authorizeHelper.SetCipherTextTime += (text) => |
|
// { |
|
// Console.WriteLine(text);//此处处理三方验证 |
|
// }; |
|
// var state = authorizeHelper.Authorize(); |
|
// if (state) |
|
// { |
|
// //return state; |
|
// var code = authorizeHelper.GetAreaCode(); |
|
// var codeinfo = authorizeHelper.GetAreaInfo(); |
|
// var modelid = authorizeHelper.GetAuthorizeModelInfo(); |
|
// var exptime = authorizeHelper.GetExpirationTime(); |
|
// var lasttime = authorizeHelper.GetLastUpdateTime(); |
|
// var lasttimetxt = authorizeHelper.GetLastUpdateTimeCiphertext(); |
|
// var up = authorizeHelper.UpdateLastUpDateTime(); |
|
// } |
|
// } |
|
// return false; |
|
//} |
|
private bool ValidityVerification(IBundleContext context) |
|
{ |
|
try |
|
{ |
|
|
|
AuthorizeHelper authorizeHelper = new AuthorizeHelper(AuthorizeType.单机授权, "BGDCPRO", "300", "3x", ""); |
|
var type = ConfigurationManager.AppSettings.Get("LicenseType"); |
|
Attribute guid_attr = Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(GuidAttribute)); |
|
string guid = ((GuidAttribute)guid_attr).Value; |
|
var state = authorizeHelper.Authorize();// ("MobileDataMake", "2x", GetVersion(Assembly.GetExecutingAssembly().Location)); |
|
if (state) |
|
{ |
|
_platformService = new PlatformService(context as IBundleContext); |
|
(context as IBundleContext).AddService(_platformService); |
|
dockViewService = new DockViewService(); |
|
(context as IBundleContext).AddService(dockViewService); |
|
} |
|
else |
|
{ |
|
LogAPI.Debug("软件授权校验未通过"); |
|
throw new Exception("授权失败"); |
|
} |
|
return true; |
|
} |
|
catch (Exception ex) |
|
{ |
|
if (ex.Message == "Dongle initialization error") |
|
{ |
|
MessageHelper.Show("未读取到加密狗数据:" + ex.Message); |
|
return false; |
|
} |
|
else |
|
{ |
|
MessageHelper.Show("未读取到加密狗数据:" + ex.Message); |
|
throw ex; |
|
} |
|
} |
|
} |
|
private string GetVersion(string fileName) |
|
{ |
|
FileVersionInfo file1 = System.Diagnostics.FileVersionInfo.GetVersionInfo(fileName); |
|
return String.Format("{0}{1}{2}", file1.ProductMajorPart, file1.ProductMinorPart, file1.ProductBuildPart); |
|
} |
|
private void VerifyLic(object context) |
|
{ |
|
try |
|
{ |
|
Attribute guid_attr = Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(GuidAttribute)); |
|
string guid = ((GuidAttribute)guid_attr).Value; |
|
var type = ConfigurationManager.AppSettings.Get("LicenseType"); _platformService = new PlatformService(context as IBundleContext); |
|
|
|
//if (!RunIDService2.Instance.Models.Contains(guid)) |
|
//{ |
|
// throw new Exception(string.Format("【{0}】插件未授权,加载失败", context.Bundle.Name)); |
|
//} |
|
(context as IBundleContext).AddService(_platformService); |
|
dockViewService = new DockViewService(); |
|
(context as IBundleContext).AddService(dockViewService); |
|
|
|
////判断授权方式 |
|
//var type = ConfigurationManager.AppSettings.Get("LicenseType"); |
|
//if (type == "F")//本地授权 |
|
//{ |
|
// Attribute guid_attr = Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(GuidAttribute)); |
|
// string guid = ((GuidAttribute)guid_attr).Value; |
|
// try |
|
// { |
|
// string[] licpath = System.IO.Directory.GetFiles(System.Environment.CurrentDirectory, "*.lic", System.IO.SearchOption.TopDirectoryOnly); |
|
// if (licpath.Length == 0) |
|
// { |
|
// MessageHelper.ShowError("授权校验失败!"); |
|
// } |
|
// if (licpath.Length == 0 || !RunIDService2.Instance.Verify(AuthorizeType.多合一授权, "BGDCPRO", "300", "3x", "10eaa61")) |
|
// { |
|
// KGIS.PlatformPlugin.Views.License.LicenseView lic = new KGIS.PlatformPlugin.Views.License.LicenseView(context); |
|
// lic.DocValidity += VerifyLic; |
|
// DialogResult dialog = lic.ShowDialog(); |
|
// } |
|
// else |
|
// { |
|
// _platformService = new PlatformService(context as IBundleContext); |
|
// (context as IBundleContext).AddService(_platformService); |
|
// dockViewService = new DockViewService(); |
|
// (context as IBundleContext).AddService(dockViewService); |
|
|
|
// return; |
|
// } |
|
// } |
|
// catch (Exception ex) |
|
// { |
|
// MessageHelper.Show(ex.Message); |
|
// LogAPI.Debug(ex); |
|
// KGIS.PlatformPlugin.Views.License.LicenseView lic = new KGIS.PlatformPlugin.Views.License.LicenseView(context); |
|
// lic.DocValidity += VerifyLic; |
|
// DialogResult dialog = lic.ShowDialog(); |
|
// } |
|
//} |
|
//else if (type == "D") |
|
//{ |
|
// if (!RunIDService2.Instance.Verify("BGDCPRO", "300", "3x")) |
|
// { |
|
// KGIS.PlatformPlugin.Views.License.LicenseView lic = new KGIS.PlatformPlugin.Views.License.LicenseView(context); |
|
// lic.DocValidity = (o) => |
|
// { |
|
// _platformService = new PlatformService(context as IBundleContext); |
|
// (context as IBundleContext).AddService(_platformService); |
|
// dockViewService = new DockViewService(); |
|
// (context as IBundleContext).AddService(dockViewService); |
|
// }; |
|
// DialogResult dialog = lic.ShowDialog(); |
|
// } |
|
// else |
|
// { |
|
// _platformService = new PlatformService(context as IBundleContext); |
|
// (context as IBundleContext).AddService(_platformService); |
|
// dockViewService = new DockViewService(); |
|
// (context as IBundleContext).AddService(dockViewService); |
|
// } |
|
//} |
|
//else |
|
//{ |
|
// KGIS.PlatformPlugin.Views.License.LicenseView lic = new KGIS.PlatformPlugin.Views.License.LicenseView(context); |
|
// lic.DocValidity += VerifyLic; |
|
// DialogResult dialog = lic.ShowDialog(); |
|
//} |
|
|
|
} |
|
catch (Exception ex) |
|
{ |
|
LogAPI.Debug(ex); |
|
} |
|
} |
|
|
|
public void Stop(IBundleContext context) |
|
{ |
|
if (null != _platformService) |
|
{ |
|
context.RemoveService<IPlatformService>(_platformService); |
|
_platformService = null; |
|
} |
|
if (null != _outputMsg) |
|
{ |
|
context.RemoveService<IOutPutMsg>(_outputMsg); |
|
_outputMsg = null; |
|
} |
|
} |
|
|
|
} |
|
}
|
|
|