asp.net:如何在自定义Login1_Authenticate中"add role to user"



我有一个 3Layer ASP.NET 项目。我使用带有自定义Login1_Authenticate的登录控件。所以我强制登录控件使用我自己的数据库和用户。但问题是向我的用户添加角色。控件适用于数据库,但我不知道如何向自己的用户添加角色。

(注 1:我不想使用"网站管理工具"来管理我的用户。

(注2:我配置了aspnet_regsql.exe到自己的数据库,但不知道热继续。

我的代码:

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
e.Authenticated = false;
try
{
BL_login G = new BL_login();
G.username = Login1.UserName.Trim();
G.password = Login1.Password.Trim();
if (G.SelectAdmin().Rows.Count != 0)
{
e.Authenticated = true;
Login1.DestinationPageUrl = "Default.aspx";
Roles.AddUserToRole(G.username, "admin");
//Roles.AddUserToRole(G.username, "user");
}
else if (G.SelectUser().Rows.Count != 0)
{
e.Authenticated = true;
Login1.DestinationPageUrl = "Default.aspx";
Roles.AddUserToRole(G.username, "user");
}
else { e.Authenticated = false; }
}
catch
{
e.Authenticated = false;
}
}

public class BL_login : DataAccess
{
//---
public string username;
public string password;
public DataTable SelectAdmin()
{
base.Link();
string Query = "SELECT users.idUser AS [کد کاربری], zones.nam AS [منطقه], users.state AS [وضعیت], users.username AS [نام کاربری], users.password AS [رمز عبور], users.role AS [دسترسی] FROM users INNER JOIN zones ON users.idZone = zones.idZone WHERE users.username='{0}' AND users.password='{1}' AND users.state='{2}'AND users.role='{3}' ";
Query = string.Format(Query, username, password, "1", "admin");
DataTable Output_Q = base.SelectDataText(Query);
base.UnLink();
return Output_Q;
}
public DataTable SelectUser()
{
base.Link();
string Query = "SELECT users.idUser AS [کد کاربری], zones.nam AS [منطقه], users.state AS [وضعیت], users.username AS [نام کاربری], users.password AS [رمز عبور], users.role AS [دسترسی] FROM users INNER JOIN zones ON users.idZone = zones.idZone WHERE users.username='{0}' AND users.password='{1}' AND users.state='{2}'AND users.role='{3}' ";
Query = string.Format(Query, username, password, "1", "user");
DataTable Output_Q = base.SelectDataText(Query);
base.UnLink();
return Output_Q;
}
//---
}

假设您使用的是 ASP.NET 成员资格:

if (G.SelectAdmin().Rows.Count != 0)
{
e.Authenticated = true;
Login1.DestinationPageUrl = "Default.aspx";
Roles.AddUserToRole(G.username, "SomeRole");  
}

最新更新