我很難理解Role機制如何與ASP.NET一起工作。在ASP.NET的FormAuthentication登錄頁面的每次登錄時爲用戶分配角色?
我有一個Microsoft SQL Server數據庫,其中一切都已經設置,我不想添加/刪除/修改表。 「用戶」表中有一個字段通過引用「類型」表中的條目的標識來指定用戶的「角色」。我想用這個字段來區分用戶的類型(例如管理員,高級或標準)。
每次連接時都不可能爲用戶分配一個角色?
我的意思是在Login.aspx.cs是這樣的:
protected void btn_login_Click(object sender, EventArgs e)
{
// On authentifie l'utilisateur via la BLL
BusinessLogicLayer bll = new BusinessLogicLayer();
Utilisateur user = bll.authenticate(txt_login.Text, txt_password.Text);
// SUCCEEDED AUTH
if (user != null)
{
// Ajout de l'utilisateur à son role correspondant
if (user.Type1.nom == "lecteur")
Roles.AddUserToRole(user.login, "lecteur");
else if (user.Type1.nom == "journaliste")
Roles.AddUserToRole(user.login, "journaliste");
else if (user.Type1.nom == "administrateur")
Roles.AddUserToRole(user.login, "administrateur");
FormsAuthentication.RedirectFromLoginPage(user.login, cb_remember.Checked);
}
// FAILED AUTH (si on arrive jusqu'ici vu qu'on a pas été redirigé)
else
lbl_invalidCredentials.Visible = true;
}
我已經閱讀了ASP.NET網站上的教程,但它使用的是我無法實現特定的數據庫配置。
這聽起來像你的 「角色」 機制是不是與ASP.NET角色提供者設置兼容。 (您的要求每個用戶只有一個角色,而通常ASP.NET允許多對多的用戶角色)。您可以嘗試編寫自定義角色提供程序,但可能無法完成整個界面。 – David
自定義角色提供程序聽起來像這裏阻力最小的路徑 - http://msdn.microsoft.com/en-us/library/8fw7xh74.aspx –
實現自定義角色提供程序似乎太重,我的基本ASP.NET網站。我想我會選擇不使用角色並在每個頁面後面的代碼中驗證用戶是否是管理員的簡單選項。 – gilgha