我想創建一個程序,只有一個用戶一次只能有一個角色。我已經開發出一種笨重的方法來消除以前擔任的角色,然後插入新的角色,但我不喜歡這樣。ASP.NET MVC:限制每個用戶的一個角色
我試圖在UsersInRoles表中做到一對多而不是多對多,但我似乎只能成功打破「內置」角色管理系統。使用System.Web.Security.SqlRoleProvider
只是覺得有一個更優雅的解決方案,因爲我是MVC的新手,但我想不起來。
任何人有一個建議?
我想創建一個程序,只有一個用戶一次只能有一個角色。我已經開發出一種笨重的方法來消除以前擔任的角色,然後插入新的角色,但我不喜歡這樣。ASP.NET MVC:限制每個用戶的一個角色
我試圖在UsersInRoles表中做到一對多而不是多對多,但我似乎只能成功打破「內置」角色管理系統。使用System.Web.Security.SqlRoleProvider
只是覺得有一個更優雅的解決方案,因爲我是MVC的新手,但我想不起來。
任何人有一個建議?
爲什麼不做這樣的事情。即讓它添加一個用戶到一個角色,將他們從其他角色中移除。
public class SingleRoleProvider : SqlRoleProvider
{
public override void AddUsersToRoles(string[] usernames, string[] roleNames)
{
// remove any existing roles users belong to
RemoveUsersFromRoles(usernames, GetAllRoles());
//only accept first role, your app should only be adding one at a time
base.AddUsersToRoles(usernames, roleNames.Take(1));
}
}
你顯然不能更改數據庫模式,並期望默認角色提供程序工作。您可能必須創建一個新的(如果您願意,您可以使用MS提供的源代碼進行更改)。
你在使用內建的'System.Web.Security.SqlRoleProvider'嗎? – kenwarner
是的,我是。對不起,忘了指定。 – RomaH