创建/删除角色时,我不想修改代码。如何使用角色(asp.net)而不对其进行硬编码?
if (HttpContext.Current.User.IsInRole("Super Admin") ||
HttpContext.Current.User.IsInRole("Admin") ||
HttpContext.Current.User.IsInRole("Support"))
{
if (HttpContext.Current.User.IsInRole("Admin"))
{
ListBox1.DataSource = Roles.GetAllRoles().Except(
new[] { "Super Admin" });
}
if (HttpContext.Current.User.IsInRole("Support"))
{
ListBox1.DataSource = Roles.GetAllRoles().Except(
new[] { "Super Admin", "Admin" });
}
fillDropDownCustomers();
}
我认为如果没有使用其他答案所建议的常量,那么这仍然需要将角色硬编码到代码中。 –
这是肯定的,但是如问题中所阐述的那样使用角色还没有很好理解,因此当角色实际上是动态的行为时,他们希望将角色扩展为动态的。 – Jonathan
非常感谢这个答案。这是非常有用的,因为我在每个需要执行操作的单个部分中启用/禁用用户,而不是向数据库询问他们是否有能力。然而,我仍然想知道如果一个特定的用户能够创建特定的记录但不是所有的记录会发生什么情况:创建一个名为“创建”的动作不是最有效的解决方案吗?我是否必须在表格Actions和其他表格之间创建关系?非常感谢你的帮助! – aleafonso