领胜LDS 键盘AOI检测项目
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
using Bro.Common.Helper;
using Bro.Common.Model;
using Bro.Common.Model.Authority;
using PostSharp.Aspects;
using SuperDog;
using System;
using System.Configuration;
using System.Reflection;
using System.Threading;
 
namespace Bro.Process
{
    //public partial class ProcessControl
    //{
    //    internal volatile bool IsAuthorized = true;
    //    Timer _authorityTimer = null;
    //    DogFeature _feature = new DogFeature(1);
    //    const int AUTHORITY_CHECK_INTERVAL = 1000 * 60 * 60;
 
    //    private void SetAuthorityCheck()
    //    {
    //        var isCheck = ConfigurationManager.AppSettings["AuthorityCheck"];
 
    //        if (isCheck != "False")
    //        {
    //            _authorityTimer = new Timer(OnCheckAuthority, null, 0, AUTHORITY_CHECK_INTERVAL);
    //        }
    //    }
 
    //    private void OnCheckAuthority(object state)
    //    {
    //        var isCheck = ConfigurationManager.AppSettings["AuthorityCheck"];
 
    //        if (isCheck != "False")
    //        {
    //            using (var dog = new Dog(_feature))
    //            {
    //                string vendorCodes = "FIgWctNxfC4kOOrFk52ktOm6JBRreMTI2ckQRUwjJmzstXN2awbyKGfjdlWcKFpjMiJRwirzPlJKSThN1nC7axSY4Y9l5+aRzCYI8WoYFmtx4zBx2n1fQ9Rb/CGk99Z9mM5mpZQVH+PGmZGsEjfSBdY12HjIcPVHGmMyecskMlhIGxDqUg8ndCk8/0fqexKbQCffDiGAPbxZgxKlRAnxJFOwd1V2Hmq3Iln1YNhyRRbgudU7kPCY/RsxBKXtL4wym96d2jQNDcKV8A5Anb4UlSLbac7OcrCZEBSUTpMjyDYRvDWFWTmfVKX9/vuI4VvKjr2t/wt01Nu0tQ0a4AVtQZk+l13WZkwkkeOUh6gtvVFJZH61hpwhOOjnN9dNw8WSYBYC/NyaMjiv7yRVHt9K/Bs76T8I0ias55BP1GXe6C+zGJ9KXK+baCLojMTObj3Bs9JFhDwEDgEjRDCxz9POZnE3XPe/2ET4KbRP5cXZsX7rxbnwQ33E/cKcG1hidG3RTLu7d+IRob9vgpeeUYXB8OHSoReJBsjhJEWBCDko9YnTb1FcO0YwPQdxW0BaVf1n6XAXlPUA6cGP552Kp3F0pcIxVKKGpYUeDL7oIFQrtnJ5aW7mB+/c35BDTCueM8wQIJ3b2KOI+lueC+dbhpHffVgtPnrh/atxcZxUoM2/KxjvniCYtUOKbeYh8Gqn1MDk1bAO2B9KNBrbGuWJpgDTfZunE/ZVtd09clExYJ8NW2Lw6pfNB3nbh1MlRUmmhQPIDubOnjiaBVbCQGF6Nm4/M0aIywSPJCMPaXK0sso5v+EDM4frryOPkvBEAbDyIuU+yQkO9vnYggKLAezyxZNxVqQgXcMaS0WyJxZxjFku7/Os8YU5z54DeOu6zDRD4zAjUKT7JIQcJKvtYGVB5lvirKDqISzDjsHcq4NJyQbQzg462y9o90ljUwCCMJrBmOw4NHpYKTNypN8aCsYmiebwag==";
    //                var status = dog.Login(vendorCodes, "<dogscope />");
    //                if (status != DogStatus.StatusOk)
    //                {
    //                    LogAsync(DateTime.Now, "权限提示", "未插入加密狗或加密已到期,请联系相关人员!");
    //                    IsAuthorized = false;
    //                    return;
    //                }
    //                DateTime time = new DateTime();
    //                if (DogStatus.TimeError == dog.GetTime(ref time))
    //                {
    //                    LogAsync(DateTime.Now, "权限提示", "请勿篡改时间!");
    //                    IsAuthorized = false;
    //                    return;
    //                }
    //            }
    //        }
 
    //        IsAuthorized = true;
    //    }
    //}
 
    public class AuthorityCheckAspect : OnMethodBoundaryAspect
    {
        public override void OnEntry(MethodExecutionArgs args)
        {
            var process = args.Instance as ProcessControl;
 
            if (!AuthorityCheck.IsAuthorityOK)
            {
                string desc = args.Method.GetCustomAttribute<ProcessMethodAttribute>().MethodDesc;
                process.LogAsync(DateTime.Now, "权限检测失败", $"权限检测失败,方法{desc}无法执行,请联系相关人员");
                args.ReturnValue = new ProcessResponse((int)ReturnValue.UNAUTHORIZATION);
                args.FlowBehavior = FlowBehavior.Return;
            }
        }
    }
}