public static void LogAction(string controller, string action, bool success, string errorMessage) { using (var manager = new MiniSessionManager()) { manager.OpenSessionWithTransaction(); var repo = ServiceLocator.Current .GetInstance <Data.DAL.IRepositoryBuilder>() .CreateCreateRepository(manager); // If Logging is disabled, return var logSetting = repo.Get <ApplicationSetting>(s => s.Key == "OperationAccessLog").FirstOrDefault(); if ( logSetting == null || string.IsNullOrWhiteSpace(logSetting.Value) || string.Compare(logSetting.Value, "false", true) == 0 || string.Compare(logSetting.Value, "0", true) == 0 ) { return; } ApplicationUser user = null; List <string> activePermissions = new List <string>(); try { user = GetCurrentApplicationUser(); activePermissions = GetCurrentApplicationUserPermissions(); } catch (Exception e) { var log = LogManager.GetLogger(typeof(IdentityHelper)); log.Error($"Failed to GetCurrentApplicationUser while Logging action: {controller}.{action}", e); } var entry = new ApplicationUserAction { UserName = user == null ? "Anonymous" : user.UserName, Action = action, Controller = controller, Date = DateTime.UtcNow, ActivePermissions = user == null ? "" : string.Join(";", activePermissions), ActiveRoles = user == null ? "" : string.Join(";", user.Roles.Select(x => x.Name)), Success = success, ErrorMessage = errorMessage }; repo.Save(entry); manager.CommitChanges(); } }
public static void InvalidateUserSecurityData(ApplicationUser user) { if (user == null) { return; } using (var manager = new MiniSessionManager()) { manager.OpenSessionWithTransaction(); var repo = ServiceLocator.Current .GetInstance <Data.DAL.IRepositoryBuilder>() .CreateCreateRepository(manager); user.SecurityStamp = Guid.NewGuid().ToString(); repo.Save(user); manager.CommitChanges(); } }