我无法理解角色机制如何与ASP.NET协同工作。
我有一个Microsoft SQL Server数据库,其中已经设置了所有内容,我不想添加/删除/修改表。 “用户”表中有一个字段,用于通过引用“类型”表中的条目的ID指定用户的“角色”。我想使用此字段来区分用户的类型(例如,可以是管理员,高级版或标准版)。
每次连接时都不可能为用户分配角色吗?
我的意思是在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网站上的教程,但它使用了我无法实现的特定数据库配置。
答案 0 :(得分:0)
角色管理器使用ASPDBNET.mdf(成员资格)。
如果您想创建自定义角色提供程序,请尝试以下操作:
How to: Sample Role-Provider Implementation
<强> 更新 强>
您可以使用Session而不是角色管理器:
:
Session["role"] = "lecteur" ;
在管理页面中:
if(Session["role"]!=null)
{
if(Session["role"]=="lecteur")
{
//welcome admin
}
else
{
//access denied
}
}
else
{
//access denied
}
更新
或者您可以使用role provider into linq