我有一个 UserProfile 模型,如下所示:
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string Position { get; set; }
public string Authority { get; set; }
public string Service { get; set; }
public string Area { get; set; }
public int IsWrite { get; set; }
}
表数据如下所示:
用户名 | 使用名 | 职位 | 权威 | 服务 | 面积 | 是写
1 | 彼得 | HSK 经理 | Svc-Ar | 汉语水平考试 | 西澳 | 0
2 | 多萝西 | 分公司经理| 氩| 全部 | 艺能 |1
3 |迈克 | HSK 主任 | 服务 | 汉语水平考试 | 全部 | 0
4 | 罗德尔 | HSK 数据录入 | 服务 | 汉语水平考试 | 全部 | 1
5 | 苏珊| WA 数据输入 |Ar | 全部 | 西澳 | 1
6 | 南希| 设施首席运营官 | 全部 | 全部 | 全部 | 0
7 | 艾伦 | 食品分公司经理 | Svc-Ar | 消防处 | 艺电 | 0
用户有多种权限范围;例如:一个对特定服务具有权限,另一个对特定区域具有权限,并且用户可能具有查看服务和区域记录的权限。我想为每个 List 控制器操作创建一个逻辑来检查 UserProfile 权限,然后考虑每个用户的权限范围列出数据。
这是另一个模型,其数据取决于称为项目的用户权限:
public class Projects
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ProjectID { get; set; }
public string Service { get; set; }
public string Area { get; set; }
[Required]
[DisplayName("Project Name")]
public string ProjectName { get; set; }
[Required]
[DataType(DataType.Currency)]
[DisplayName("Contract Value")]
public double ContractValue { get; set; }
[Required]
[DisplayName ("Contract Total MP")]
public int ContractMP { get; set; }
[Editable(false)]
public int UserID { get; set; }
[DataType(DataType.DateTime )]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime EntryDateTime { get; set; }
}
我想在项目控制器“索引”操作的开头放置一个逻辑来验证用户的权限;如果是“Svr”,则只显示他的服务数据,如果他的权限是“Ar”,它将只显示他的区域数据,如果他的权限是“Svr-Ar”,它将显示他的服务和区域数据只有,如果他的权限是“全部”,它将显示所有数据。
我尝试了很多方法来做到这一点,但我做不到,而且我是 MVC 的新手。请帮我。问候。