Пример #1
0
        public void Test_log4net_InsertOnStartReplaceOnEnd()
        {
            Audit.Core.Configuration.Setup()
            .UseLog4net(_ => _
                        .LogLevel(LogLevel.Info));

            _adapter.Clear();

            using (var s = new AuditScopeFactory().Create(new AuditScopeOptions()
            {
                CreationPolicy = EventCreationPolicy.InsertOnStartReplaceOnEnd,
                EventType = "Test_log4net_InsertOnStartReplaceOnEnd"
            }))
            {
            }

            var events = _adapter.PopAllEvents();

            Assert.AreEqual(2, events.Length);
            Assert.AreEqual("Test_log4net_InsertOnStartReplaceOnEnd", JsonAdapter.Deserialize <AuditEvent>(events[0].MessageObject.ToString()).EventType);
            Assert.AreEqual("Test_log4net_InsertOnStartReplaceOnEnd", JsonAdapter.Deserialize <AuditEvent>(events[1].MessageObject.ToString()).EventType);
            var jsonAdapter = new JsonAdapter();

            Assert.AreEqual(jsonAdapter.Deserialize <AuditEvent>(events[0].MessageObject.ToString()).CustomFields["EventId"].ToString(), jsonAdapter.Deserialize <AuditEvent>(events[1].MessageObject.ToString()).CustomFields["EventId"].ToString());
        }
Пример #2
0
        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {
            HttpCookie authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];

            if (null == authCookie)
            {
                return;
            }
            FormsAuthenticationTicket authTicket;

            try
            {
                authTicket = FormsAuthentication.Decrypt(authCookie.Value);
            }
            catch (Exception)
            {
                return;
            }
            if (null == authTicket)
            {
                return;
            }
            var profile = JsonAdapter.Deserialize <WebIdentity>(authTicket.UserData);

            Context.User = new WebPrincipal
            {
                Identity = profile
            };
        }
        public Message Handle()
        {
            Message message = null;

            try
            {
                consumer.Subscribe("hello-topic");

                CancellationTokenSource cts = new CancellationTokenSource();
                Console.CancelKeyPress += (_, e) =>
                {
                    e.Cancel = true;
                    cts.Cancel();
                };

                var cr = consumer.Consume(cts.Token);
                consumer.Close();

                message = JsonAdapter <Message> .Deserialize(cr.Value);
            }
            catch (ConsumeException ex)
            {
                Console.WriteLine($"Ocorreu um erro: {ex.Error.Reason}");
            }
            return(message);
        }
Пример #4
0
        /// <summary>
        ///Deserialize 的测试
        ///</summary>
        public void DeserializeTestHelper <T>()
        {
            var o        = string.Empty;
            var expected = default(T);
            var actual   = JsonAdapter.Deserialize <T>(o);

            Assert.AreEqual(expected, actual);
        }
Пример #5
0
        public void Test_NLog_InsertOnEnd()
        {
            Audit.Core.Configuration.Setup()
            .UseNLog(_ => _
                     .LogLevel(ev => (LogLevel)ev.CustomFields["LogLevel"])
                     .Logger(ev => LogManager.GetLogger(typeof(NLogTests).ToString())));

            _adapter.Logs.Clear();

            using (var s = new AuditScopeFactory().Create(new AuditScopeOptions()
            {
                CreationPolicy = EventCreationPolicy.InsertOnEnd,
                EventType = nameof(Test_NLog_InsertOnEnd),
                ExtraFields = new
                {
                    LogLevel = LogLevel.Debug
                }
            }))
            {
                s.Event.CustomFields["LogLevel"] = LogLevel.Error;
            }

            var events = _adapter.Logs.Select(l => new NLogObject(l)).ToArray();

            Assert.AreEqual(1, events.Length);
            Assert.AreEqual(LogLevel.Error, events[0].Level);
            Assert.AreEqual(nameof(Test_NLog_InsertOnEnd), JsonAdapter.Deserialize <AuditEvent>(events[0].MessageObject).EventType);
        }
Пример #6
0
        public void ToJObjectTest()
        {
            string str = "{title:'text of title',body:'content',addtime:'2008-08-08 20:00:00'}";             // TODO: 初始化为适当的值
            //	JObject expected = null; // TODO: 初始化为适当的值
            var actual = JsonAdapter.Deserialize <Dictionary <string, string> >(str);

            Assert.AreEqual(actual["title"], "text of title");
            Assert.AreEqual(actual["body"], "content");
            Assert.AreEqual(DateTime.Parse(actual["addtime"].ToString()), DateTime.Parse("2008-08-08 20:00"));
        }
Пример #7
0
        T GetRequestParamter <T>()
        {
            string json = "";

            using (StreamReader sr = new StreamReader(Request.InputStream))
            {
                json = sr.ReadToEnd();
            }
            return(JsonAdapter.Deserialize <T>(json));
        }
Пример #8
0
        //解析token
        ActionResult AnalysisToken(ApiParamter paramter, out bool isret, out tMembersEntity member)
        {
            member = null;
            isret  = true;

            if (paramter == null)
            {
                return(RetToLogin("登录过期,请重新登录"));
            }

            if (paramter.token.IsEmpty())
            {
                return(RetToLogin("登录过期,请重新登录"));
            }

            paramter.token = DES3Encrypt.Decrypt(paramter.token);

            paramter.user = JsonAdapter.Deserialize <UserToken>(paramter.token);
            if (paramter.user == null)
            {
                return(RetJsonResult(ApiResponseCodeEnum.Fail, "非法请求"));
            }

            if (DateHelper.GetTimeStamp_Seconds() - paramter.user.time > (30 * 60))
            {
                return(RetToLogin("登录过期,请重新登录"));
            }

            if (paramter.user.Id <= 0)
            {
                return(RetJsonResult(ApiResponseCodeEnum.Fail, "非法请求"));
            }

            member = tMembersBLL.Instance.GetModel(paramter.user.Id);
            if (member == null)
            {
                return(RetJsonResult(ApiResponseCodeEnum.Fail, "非法请求"));
            }

            if (member.mbState.Value.Equals(YesNoEnum.No.GetHashCode()))
            {
                return(RetToLogin("账户被禁用"));
            }

            paramter.clientType = ClientHelper.IsPC(Request.UserAgent) ? "PC" : "H5";

            isret = false;
            return(RetJsonResult(ApiResponseCodeEnum.Success));
        }
Пример #9
0
        public virtual ActionResult History(long versionId)
        {
            KeyValuePair <Wiki, WikiVersion> t = Entry.GetFromVersion(versionId);

            if (t.Key == null || t.Value == null)
            {
                return(View("wait", "site"));
            }
            Wiki        entry   = t.Key;
            WikiVersion version = t.Value;

            ViewData["version"] = version;
            ViewData["entry"]   = entry;
            ViewData["ext"]     = JsonAdapter.Deserialize <EntryExt>(version.Ext);
            Title = entry.Url;
            return(View());
        }
Пример #10
0
 public virtual ActionResult Edit(long?id)
 {
     if (id != null)
     {
         //修改
         Tuple <Wiki, WikiVersion> d = Entry.Get(id.Value);
         Wiki entry = d.Item1;
         if ((entry.Status == (int)WikiStatus.Common || HasManageRight() ||
              new[] { 0, WebUser.UserId }.Contains(entry.CreatorId)))
         {
             ViewData["exists"] = true;
             ViewData["entry"]  = entry;
             ViewData["id"]     = entry.Id;
             WikiVersion ev = d.Item2;
             if (ev == null)
             {
                 ev = new WikiVersion();
             }
             ViewData["entryversion"] = ev; //.Url;
             EntryExt ee = JsonAdapter.Deserialize <EntryExt>(ev.Ext) ?? new EntryExt();
             ViewData["tags"] = string.Join(",", ee.Tags.ToNotNull().ToArray());
             Title            = "编辑词条:" + entry.Url;
         }
         else
         {
             return(View("Wait"));
         }
     }
     else
     {
         if (!string.IsNullOrEmpty(Request.QueryString["url"]))
         {
             ViewData["entry.Url"] = Request.QueryString["url"];
         }
         ViewData["entryversion.reason"] = "创建词条";
         Title = "创建词条";
     }
     return(View());
 }
Пример #11
0
 public void Deserialize()
 {
     DeserializeTestHelper <GenericParameterHelper>();
     Assert.AreEqual(default(GenericParameterHelper), JsonAdapter.Deserialize <GenericParameterHelper>("{\"Data\":\"1\"}"));
 }
Пример #12
0
        public async Task Test_HttpAction_InsertOnStartInsertOnEnd()
        {
            var evs     = new List <AuditEventHttpClient>();
            var actions = new List <HttpAction>();

            Audit.Core.Configuration.Setup()
            .Use(_ => _.OnInsertAndReplace(ev =>
            {
                evs.Add(JsonAdapter.Deserialize <AuditEventHttpClient>(JsonAdapter.Serialize(ev)));
                actions.Add(JsonAdapter.Deserialize <HttpAction>(JsonAdapter.Serialize(ev.GetHttpAction())));
            }))
            .WithCreationPolicy(Core.EventCreationPolicy.InsertOnStartInsertOnEnd);

            var cli = ClientFactory.Create(config);
            var url = "http://google.com/some/path?some=querystring";

            using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, url))
            {
                requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "123456");
                requestMessage.Headers.Add("pepe", new[] { "test1", "test2" });
                requestMessage.Content = new StringContent("string content", Encoding.UTF8);
                await cli.SendAsync(requestMessage);
            }

            Assert.AreEqual(2, actions.Count);
            Assert.AreEqual(2, evs.Count);

            Assert.AreEqual("test", evs[0].EventType);
            Assert.AreEqual("POST", actions[0].Method);
            Assert.IsNotNull(actions[0].Request);
            Assert.IsNotNull(actions[0].Request.Content);
            Assert.AreEqual("string content", actions[0].Request.Content.Body.ToString());
            Assert.AreEqual("text/plain; charset=utf-8", actions[0].Request.Content.Headers["Content-Type"]);
            Assert.AreEqual("http", actions[1].Request.Scheme);
            Assert.AreEqual("test1, test2", actions[0].Request.Headers["pepe"]);
            Assert.AreEqual("?some=querystring", actions[0].Request.QueryString);
            Assert.AreEqual("/some/path", actions[0].Request.Path);
            Assert.IsNull(actions[0].Response);
            Assert.AreEqual(url, actions[0].Url);

            Assert.AreEqual("POST", actions[1].Method);
            Assert.IsNotNull(actions[1].Request);
            Assert.IsNotNull(actions[1].Response);
            Assert.AreEqual(url, actions[1].Url);
            Assert.IsTrue(actions[1].Response.Headers.Count > 0);
            Assert.AreEqual(false, actions[1].Response.IsSuccess);
            Assert.AreEqual(404, actions[1].Response.StatusCode);
            Assert.AreEqual("Not Found", actions[1].Response.Reason);
            Assert.AreEqual("NotFound", actions[1].Response.Status);
            Assert.IsTrue(actions[1].Response.Content.Body.ToString().Length > 0);
            Assert.IsTrue(actions[1].Response.Content.Headers.Count > 0);
        }
Пример #13
0
        public static TDest Cast <TDest>(object source)
        {
            string json = JsonAdapter.Serialize(source);

            return(JsonAdapter.Deserialize <TDest>(json));
        }