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, ""); // 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().MethodDesc; process.LogAsync(DateTime.Now, "权限检测失败", $"权限检测失败,方法{desc}无法执行,请联系相关人员"); args.ReturnValue = new ProcessResponse((int)ReturnValue.UNAUTHORIZATION); args.FlowBehavior = FlowBehavior.Return; } } } }