我正在开发一个Web应用程序,其中不同的用户角色应具有不同的安全权限(查看,编辑)。为了实现这一点,我有一个自定义属性[ReadOnlyAuthorize(“Supervisor,Administrator,SysAdministrator”)]。
当使用此属性标记字段且用户没有这些角色之一时,我的编辑器模板会将该字段标记为只读和禁用。
问题在于,通过在创建,编辑和搜索操作中使用相同的模型,我获得了相同的功能,这不是我想要的。这看起来非常糟糕,但它是一个临时解决方案。
除了使用新的和定义新属性之外,还有办法覆盖这些注释吗?
我希望这个描述对你有意义,这些是我课程的一部分:
[MetadataType(typeof(AssetMetadata))]
public partial class DTAsset
{
}
public class AssetMetadata
{
[ReadOnlyAuthorize("SysAdministrator")]
[DisplayName("Asset ID:")]
public string AssetID { get; set; }
}
public class AssetSearchViewModel : AssetMetadata
{
// removed [ReadOnlyAuthorize("SysAdministrator")]
[DisplayName("Asset ID:")]
public string AssetID { get; set; }
}