Beispiel #1
0
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            AuditTbModel objaudit = new AuditTbModel();

            var controllerName = ((ControllerBase)context.Controller)
                                 .ControllerContext.ActionDescriptor.ControllerName;
            var actionName = ((ControllerBase)context.Controller)
                             .ControllerContext.ActionDescriptor.ActionName;
            var area = ((ControllerBase)context.Controller)
                       .ControllerContext.ActionDescriptor.RouteValues["area"];

            var request = context.HttpContext.Request;

            if (!string.IsNullOrEmpty(Convert.ToString(context.HttpContext.Session.GetString(AllSessionKeys.UserId))))
            {
                var userValue = Convert.ToInt32(context.HttpContext.Session.GetString(AllSessionKeys.UserId));
                objaudit.UserId = Convert.ToString(userValue);
            }
            else
            {
                objaudit.UserId = string.Empty;
            }

            objaudit.SessionId    = context.HttpContext.Session.Id;
            objaudit.IpAddress    = Convert.ToString(_httpContextAccessor.HttpContext.Connection.RemoteIpAddress);
            objaudit.PageAccessed = Convert.ToString(context.HttpContext.Request.Path); // URL User Requested
            objaudit.LoggedInAt   = DateTime.Now;


            if (actionName == "LogOff")
            {
                objaudit.LoggedOutAt = DateTime.Now; // Time User Logged OUT
            }

            objaudit.LoginStatus    = "A";
            objaudit.ControllerName = controllerName; // ControllerName
            objaudit.ActionName     = actionName;

            RequestHeaders header     = request.GetTypedHeaders();
            Uri            uriReferer = header.Referer;

            if (uriReferer != null)
            {
                objaudit.UrlReferrer = header.Referer.AbsoluteUri;
            }

            _auditCommand.InsertAuditData(objaudit);
        }
Beispiel #2
0
        public void InsertAuditData(AuditTbModel objaudittb)
        {
            try
            {
                using (SqlConnection sqlConnection = new SqlConnection(_configuration.GetConnectionString("AuditDatabaseConnection")))
                {
                    sqlConnection.Open();
                    SqlTransaction dbTransaction = sqlConnection.BeginTransaction();
                    var            para          = new DynamicParameters();
                    para.Add("@UserID", objaudittb.UserId);
                    para.Add("@SessionID", objaudittb.SessionId);
                    para.Add("@IPAddress", objaudittb.IpAddress);
                    para.Add("@PageAccessed", objaudittb.PageAccessed);
                    para.Add("@LoggedInAt", objaudittb.LoggedInAt);
                    para.Add("@LoggedOutAt", objaudittb.LoggedOutAt);
                    para.Add("@LoginStatus", objaudittb.LoginStatus);
                    para.Add("@ControllerName", objaudittb.ControllerName);
                    para.Add("@ActionName", objaudittb.ActionName);
                    para.Add("@UrlReferrer", objaudittb.UrlReferrer);
                    var result = sqlConnection.Execute("Usp_AuditTB", para, dbTransaction, 0, CommandType.StoredProcedure);

                    if (result > 0)
                    {
                        dbTransaction.Commit();
                    }
                    else
                    {
                        dbTransaction.Rollback();
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }