private void LogEvent(IdentityAuditEventArgs eventArgs, DatabaseContext dbCtx)
        {
            // LoginFailed always has the AffectedUser as 0 when their is no user for the login,
            // see https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/Umbraco.Core/Security/BackOfficeUserManager.cs#L609.
            // This is a bug in Umbraco's implementation, so we will ignore the AffectedUser in that case.
            int affectedUser = eventArgs.Action == AuditEvent.LoginFailed && eventArgs.Username != null && eventArgs.Comment != null
                ? -1
                : eventArgs.AffectedUser;

            var userLogItem = new UserLogItem(
                eventArgs.PerformingUser, affectedUser, eventArgs.Username,
                eventArgs.Action, eventArgs.IpAddress, eventArgs.DateTimeUtc);

            userLogItem.Save(dbCtx);
        }
Ejemplo n.º 2
0
        public async Task <IHttpActionResult> GetUserLog()
        {
            List <UserLogItem> toReturn = new List <UserLogItem>();

            try
            {
                using (SqlConnection con = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
                {
                    using (SqlCommand cmd = new SqlCommand("Select * from UserPurchaseLog where UserId=@id", con))
                    {
                        cmd.Parameters.AddWithValue("@id", User.Identity.GetUserId());

                        await con.OpenAsync();

                        using (SqlDataReader rdr = await cmd.ExecuteReaderAsync())
                        {
                            while (rdr.Read())
                            {
                                UserLogItem item = new UserLogItem();

                                item.Id           = Convert.ToInt32(rdr["Id"].ToString());
                                item.Title        = rdr["Title"].ToString();
                                item.UserId       = rdr["UserId"].ToString();
                                item.Price        = double.Parse(rdr["Price"].ToString());
                                item.Items        = int.Parse(rdr["Items"].ToString());
                                item.PurchaseTime = Convert.ToDateTime(rdr["PurchaseTime"].ToString());

                                toReturn.Add(item);
                            }

                            return(Ok(toReturn));
                        }
                    }
                }
            }
            catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }
 private void RunDatabaseMigrations(ApplicationContext appCtx)
 {
     UserLogItem.RunMigrations(appCtx);
 }