74 lines
2.2 KiB
C#
74 lines
2.2 KiB
C#
using System;
|
|
using System.Reflection;
|
|
using Xylem.Common.CommonCore.Configuration;
|
|
|
|
namespace Xylem.Common.Logic.SoftwareAccessHelper
|
|
{
|
|
/// <summary>
|
|
/// Access right and permission handling for software assemblies. The production data base contains the assembly names and
|
|
/// validation dates. This avoids usage of not permitted software. New software releases can invalid older versions.
|
|
/// </summary>
|
|
public static class Access
|
|
{
|
|
/// <summary>
|
|
/// Check this assembly access rights/permissions.
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static Boolean HasAccess()
|
|
{
|
|
return HasAccess(Assembly.GetExecutingAssembly().GetName());
|
|
}
|
|
/// <summary>
|
|
/// Check the assembly name and version.
|
|
/// </summary>
|
|
/// <param name="assemblyName"></param>
|
|
/// <returns></returns>
|
|
public static Boolean HasAccess(AssemblyName assemblyName)
|
|
{
|
|
return HasAccess(assemblyName.Name, assemblyName.Version.Major, assemblyName.Version.Minor,
|
|
assemblyName.Version.Build);
|
|
}
|
|
/// <summary>
|
|
/// check the program name and version.
|
|
/// </summary>
|
|
/// <param name="program"></param>
|
|
/// <param name="major"></param>
|
|
/// <param name="minor"></param>
|
|
/// <param name="build"></param>
|
|
/// <returns></returns>
|
|
private static Boolean HasAccess(String program, Int32 major, Int32 minor, Int32 build)
|
|
{
|
|
if (System.Diagnostics.Debugger.IsAttached)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
try
|
|
{
|
|
var url = $"{ServiceUrls.GetSoftwareStartUpAccessUrl()}?Program={program}&Major={major}&Minor={minor}&Build={build}";
|
|
var requestResponse = LocalWebRequest.GetRequest(url, 1200);
|
|
|
|
var ret = bool.Parse(requestResponse.Trim('"'));
|
|
return ret;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
public static class Updater
|
|
{
|
|
public static void CheckAndUpdate()
|
|
{
|
|
//todo implement
|
|
|
|
//
|
|
}
|
|
|
|
}
|
|
}
|