創建/刪除角色時,我不想修改代碼。如何使用角色(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