ログインページにadmin、employee、userという3つのロールが設定されています。管理者としてログインしているときにAdmin/Default.aspxにリダイレクトします。従業員としてログインするとEmployee/Default .aspxとUserとしてのログイン時にUser/Default.aspxにリダイレクトすると、これらの3つの役割のすべての機能が動作していることを意味します。そして、私は新しいユーザーを作成したと思う彼のためにSumitは、私は何も役割を与えていないこの場合はDefault.aspxページにリダイレクトされているUser/Default.aspxページにリダイレクトされています。誰かが私を助けることができたpls理由は何ですか?ここに私の全体のコードは次のとおりです。ページ認証のヘルプが必要
Login.aspx.cs:
protected void Login1_LoggedIn(object sender, EventArgs e)
{
Session["UserName"] = Login1.UserName;
Session["Password"] = Login1.Password;
string username = Login1.UserName.Trim();
string password = Login1.Password.Trim();
LoginBusinessLayer LB = new LoginBusinessLayer();
try
{
if (LB.GetLogin(username,password) == true)
{
if (Session["RoleName"].Equals("admin"))
{
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, false);
Response.Redirect("Admin/Default.aspx");
}
else if (Session["RoleName"].Equals("employee"))
{
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, false);
Response.Redirect("Employee/Default.aspx");
}
else if (Session["RoleName"].Equals("user"))
{
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, false);
Response.Redirect("User/Default.aspx");
}
else
{
Response.Redirect("Default.aspx");//Control is not coming in this else part
}
}
}
catch(SqlException ex)
{
Response.Write(ex.Message);
}
finally
{
LB = null;
}
}
BusinessLayer.cs:
public class LoginBusinessLayer
{
public bool GetLogin(string userid, string userrole)
{
LoginDataLayer LD = new LoginDataLayer();
LD.GetUser(userid,userrole);
return true;
}
}
DataLayer.cs:
public class LoginDataLayer
{
SqlConnection con;
SqlCommand com;
SqlDataReader dr;
string check;
public bool GetUser(string userid, string rolename)
{
if (HttpContext.Current.Session["UserName"] != null)
{
con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
con.Open();
check = "Select ur.UserId,ur.UserName,rl.RoleName from aspnet_Users as ur,aspnet_Roles rl,aspnet_UsersInRoles as ir where ur.UserName = '"+HttpContext.Current.Session["UserName"] + "' and ur.UserId=ir.UserId and ir.RoleId=rl.RoleId";
com = new SqlCommand(check, con);
dr = com.ExecuteReader(CommandBehavior.CloseConnection);
while (dr.Read())
{
if (dr.HasRows)
{
HttpContext.Current.Session["UserId"] = dr["UserId"].ToString();
HttpContext.Current.Session["RoleName"] = dr["RoleName"].ToString();
return true;
}
}
con.Close();
}
return false;
}
}
赤highligtedコードの上にありますあなたの返信は高く評価されています。 ありがとう、 Sumit
質問をフォーマットしようとすると、このテキストの壁を試して読めるように目が真剣に痛いです。コードの書式をコード形式に入れてみてください。 – Konstantinos