c# - system.reflection.targetException c# 错误
问题描述
我有一个 MVC 应用程序,我得到一个 system.reflection.targetexception 非静态方法需要一个目标,当我将它们重新定向到我的应用程序的正确位置时,这发生在我的基本控制器上,我基本上只是在尝试更新lastlogindate。
case "employeecenter":
Common.AppName = "Employee Center";
if (Session["LLD_EmpCenter"] == null)
{
Session["LLD_EmpCenter"] = true;
System.Threading.Tasks.Task.Factory.StartNew(() =>
{
try
{
Common.Instance.UpdateLastLoginDate(User.Identity.Name);
}
catch (ArgumentException e)
{
}
});
}
错误发生在 common.instance.updateLastloginDate 和 user.identity.name 上,它的值不为空,所以我不确定为什么会发生错误。即使对此进行尝试捕获仍然会引发此异常并导致我的调试器停止。
namespace KMSSecurity
{
public class Common : IDisposable
{
public Common();
public static string AppName { get; set; }
public static string ConnectionString { get; set; }
public static Common Instance { get; }
public KMSSecurityContext Context { get; protected set; }
public bool ChangeAppPermissionForUser(Guid appId, string userName, bool grant);
public bool ChangeCategoryPermissionForUser(int categoryId, string userName, bool grant);
public bool ChangePassword(string userName, string oldPassword, string newPassword);
public void ChangePasswordQuestionAndAnswer(string username, string password, string passwordquestion, string passwordanswer);
public bool ChangePermissionForUser(Guid roleId, int categoryid, string permissionName, string userName, bool grant);
public bool ChangePermissionForUser(Guid roleId, string permissionName, string userName, bool grant);
public bool ChangeRolePermissionForUser(Guid roleId, string userName, bool grant);
public void CopyUserPermissions(string userNameFrom, string userNameTo, Guid appId);
public void CopyUserPermissions(string userNameFrom, string userNameTo, string applicationName);
public Guid CreateApplication(string appName);
public int CreateCategory(string appName, string roleName, string categoryName, string categoryDesc, int displayOrder);
public bool CreatePermission(string permissionName, string permissionDesc, string permissionHelpText, int displayOrder, int categoryId);
public Guid? CreateRole(string appName, string roleName, string roleDescription);
public MembershipUser CreateUser(string userName, string email, string passwordQuestion, string passwordAnswer);
public MembershipUser CreateUser(string userName, string passWord, string email, string passwordQuestion, string passwordAnswer);
public UserPermissions CreateUserPermissions();
public UserPermissions CreateUserPermissions(string userName);
public UserPermissions CreateUserPermissions(string userName, List<Role> initialPerms);
public UserPermissions CreateUserPermissions(string appName, string userName);
public bool DeleteApplication(Guid applicationId);
public bool DeleteCategory(int categoryId, bool deleteOnlyIfIsEmpty);
public bool DeleteCategory(string appName, string roleName, string categoryName, bool deleteOnlyIfIsEmpty);
public bool DeletePermission(Guid appId, Guid roleId, int categoryId, string permissionName, bool deleteOnlyIfRoleIsEmpty);
public bool DeleteRole(string appName, string roleName, bool deleteOnlyIfRoleIsEmpty);
public bool DeleteRole(Guid roleId, bool deleteOnlyIfRoleIsEmpty);
public bool DeleteUser(string userName);
public void DisableLogin(string userName);
public bool EditCategory(int id, string name, string desc, int displayOrder);
public bool EditPermission(int categoryId, string permissionName, string permissionDesc, string permissionHelpText, int displayOrder, int newCategoryId);
public bool EditRole(Guid id, string desc);
public void EnableLogin(string userName);
public List<Security_User> GetAdministrators();
public List<Security_User> GetAllUsers();
public Application GetApplication(Guid applicationId);
public List<Application> GetApplications();
public List<Security_User> GetApplicationUsers(Guid applicationId);
public int GetAvailableDisplayOrder(int categoryId);
public int GetAvailableDisplayOrder(Guid roleId);
public List<Role> GetAvailablePermissions(string appName);
public List<string> GetCategoriesNames(string appName, string roleName);
public Security_Category GetCategory(int id);
public Security_Category GetCategory(string appName, string roleName, string categoryName);
public List<string> GetCategoryPermissionNames(int categoryId);
public List<string> GetCategoryPermissionNames(string appName, string roleName, string categoryName);
public User GetCombinedUser(string userName);
public string GetPasswordQuestion(string userName);
public Security_Permissions GetPermission(int categoryId, string permissionName);
public List<Security_Permissions> GetPermissionsForRole(string roleName, string appName);
public List<Security_Permissions> GetPermissionsForRole(string appName, string roleName, string categoryName);
public Role GetRole(Guid roleId);
public Role GetRole(string roleName, string appName);
public List<Security_Category> GetRoleCategories(string roleName, string appName);
public List<string> GetRoleNames(string appName);
public List<string> GetRolePermissionNames(string roleName, string appName);
public ICollection<Role> GetRoles(Guid applicationId);
public List<Role> GetRolesForUser(string appName, string userName);
public List<Security_User> GetUserForAllApps(string userName);
public Security_User GetUserForApp(string userName, string appName);
public List<Security_User> GetUserForPermission(int categoryId, string permissionName);
public MembershipUser MembershipUser(string userName);
public string ResetPassword(string userName, string passwordAnswer);
public bool ResetPassword(string userName, string defaultPassword = "", string passWordSalt = "", int passwordFormat = 1);
public bool RoleExists(string roleName, string appName);
public bool UnlockUser(string userName);
public void UpdateEmail(string userName, string email);
public void UpdateLastLoginDate(string username);
}
}
这是我的普通类,它期望一个用户名被传递给 updateLastLoginDate 任何帮助将不胜感激。
解决方案
很难确定。
看起来 Common 类的静态 Instance 值没有设置。
你需要添加一个静态构造函数来设置它吗?
namespace KMSSecurity
{
public class Common : IDisposable
{
public Common();
static Common()
{
Instance = new Common();
}
public static string AppName { get; set; }
public static string ConnectionString { get; set; }
public static Common Instance { get; }
public KMSSecurityContext Context { get; protected set; }
public bool ChangeAppPermissionForUser(Guid appId, string userName, bool grant);
public bool ChangeCategoryPermissionForUser(int categoryId, string userName, bool grant);
public bool ChangePassword(string userName, string oldPassword, string newPassword);
public void ChangePasswordQuestionAndAnswer(string username, string password, string passwordquestion, string passwordanswer);
public bool ChangePermissionForUser(Guid roleId, int categoryid, string permissionName, string userName, bool grant);
public bool ChangePermissionForUser(Guid roleId, string permissionName, string userName, bool grant);
public bool ChangeRolePermissionForUser(Guid roleId, string userName, bool grant);
public void CopyUserPermissions(string userNameFrom, string userNameTo, Guid appId);
public void CopyUserPermissions(string userNameFrom, string userNameTo, string applicationName);
public Guid CreateApplication(string appName);
public int CreateCategory(string appName, string roleName, string categoryName, string categoryDesc, int displayOrder);
public bool CreatePermission(string permissionName, string permissionDesc, string permissionHelpText, int displayOrder, int categoryId);
public Guid? CreateRole(string appName, string roleName, string roleDescription);
public MembershipUser CreateUser(string userName, string email, string passwordQuestion, string passwordAnswer);
public MembershipUser CreateUser(string userName, string passWord, string email, string passwordQuestion, string passwordAnswer);
public UserPermissions CreateUserPermissions();
public UserPermissions CreateUserPermissions(string userName);
public UserPermissions CreateUserPermissions(string userName, List<Role> initialPerms);
public UserPermissions CreateUserPermissions(string appName, string userName);
public bool DeleteApplication(Guid applicationId);
public bool DeleteCategory(int categoryId, bool deleteOnlyIfIsEmpty);
public bool DeleteCategory(string appName, string roleName, string categoryName, bool deleteOnlyIfIsEmpty);
public bool DeletePermission(Guid appId, Guid roleId, int categoryId, string permissionName, bool deleteOnlyIfRoleIsEmpty);
public bool DeleteRole(string appName, string roleName, bool deleteOnlyIfRoleIsEmpty);
public bool DeleteRole(Guid roleId, bool deleteOnlyIfRoleIsEmpty);
public bool DeleteUser(string userName);
public void DisableLogin(string userName);
public bool EditCategory(int id, string name, string desc, int displayOrder);
public bool EditPermission(int categoryId, string permissionName, string permissionDesc, string permissionHelpText, int displayOrder, int newCategoryId);
public bool EditRole(Guid id, string desc);
public void EnableLogin(string userName);
public List<Security_User> GetAdministrators();
public List<Security_User> GetAllUsers();
public Application GetApplication(Guid applicationId);
public List<Application> GetApplications();
public List<Security_User> GetApplicationUsers(Guid applicationId);
public int GetAvailableDisplayOrder(int categoryId);
public int GetAvailableDisplayOrder(Guid roleId);
public List<Role> GetAvailablePermissions(string appName);
public List<string> GetCategoriesNames(string appName, string roleName);
public Security_Category GetCategory(int id);
public Security_Category GetCategory(string appName, string roleName, string categoryName);
public List<string> GetCategoryPermissionNames(int categoryId);
public List<string> GetCategoryPermissionNames(string appName, string roleName, string categoryName);
public User GetCombinedUser(string userName);
public string GetPasswordQuestion(string userName);
public Security_Permissions GetPermission(int categoryId, string permissionName);
public List<Security_Permissions> GetPermissionsForRole(string roleName, string appName);
public List<Security_Permissions> GetPermissionsForRole(string appName, string roleName, string categoryName);
public Role GetRole(Guid roleId);
public Role GetRole(string roleName, string appName);
public List<Security_Category> GetRoleCategories(string roleName, string appName);
public List<string> GetRoleNames(string appName);
public List<string> GetRolePermissionNames(string roleName, string appName);
public ICollection<Role> GetRoles(Guid applicationId);
public List<Role> GetRolesForUser(string appName, string userName);
public List<Security_User> GetUserForAllApps(string userName);
public Security_User GetUserForApp(string userName, string appName);
public List<Security_User> GetUserForPermission(int categoryId, string permissionName);
public MembershipUser MembershipUser(string userName);
public string ResetPassword(string userName, string passwordAnswer);
public bool ResetPassword(string userName, string defaultPassword = "", string passWordSalt = "", int passwordFormat = 1);
public bool RoleExists(string roleName, string appName);
public bool UnlockUser(string userName);
public void UpdateEmail(string userName, string email);
public void UpdateLastLoginDate(string username);
}
}
推荐阅读
- python - 创建新的 CSV 第一次迭代并在下一次迭代中追加
- python - 如何用python制作图像序列的lottie动画?
- git - 无法推送到 git 远程存储库
- css - 如何在引导程序中使用 flexbox 列制作可滚动菜单
- android - 如何为 HMS Core App 提供权限?
- python - Python:在多个数组列中计算零并有效地存储它们
- wso2 - 未添加帐户锁定属性以响应 wso2 中的 scim2 GET 用户 API
- vb.net - 使用 oAuth2 重新连接 ews 流连接
- python - Discord.py: has_permissons() 不工作——错误不是 MissingPermissions 的一个实例
- java - 未指定获取目标主机