【发布时间】:2021-07-16 08:46:47
【问题描述】:
public void GetUserPermission(string username)
{
using var db = new SOSContext();
{
var userAccount = db.Users.SingleOrDefault(x => x.UserName == username);
UserPermissionsDTO userPermissions = new UserPermissionsDTO()
{
CanManageUsers = userAccount.CanManageUsers,
CanManageCustomers = userAccount.CanManageCustomers,
CanManageStocks = userAccount.CanManageStocks,
CanManageOrders = userAccount.CanManageOrders,
CanManageDeliveries = userAccount.CanManageDeliveries,
};
}
我有这种方法可以查询数据库以检查与正确用户名匹配的用户的用户权限。我正在尝试将这些用户权限转移到我的应用程序中的 login.xaml.cs 类。我正在使用 dto 对象来执行此操作。
class UserPermissionsDTO
{
public bool CanManageUsers { get; set; }
public bool CanManageCustomers { get; set; }
public bool CanManageStocks { get; set; }
public bool CanManageOrders { get; set; }
public bool CanManageDeliveries { get; set; }
}
在 userpermissions 方法中创建 dto 对象的实例时遇到的问题,如果 userpermissions 值为 true,则此值不会传输到我的 login.xaml.cs。当我调试程序时,所有用户权限 DTO 的值都设置为默认值 false。有人对转移用户权限或修复此损坏代码的更好方法有任何建议吗?
using QuickWatch to check value of userpermissions dto variables
【问题讨论】:
-
我想你必须向我们展示你如何将你的
userPermissions对象转移到你的视图中。 -
尝试将
GetUserPermission的返回类型从void更改为UserPermissionsDTO。然后在您的调用代码(从您的屏幕截图中)更改为UserPermissionsDTO userPermissions = GetUserPermission(...)