|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|