2015-03-16 1 views
0
protected void btnLogin_Click(object sender, EventArgs e) 
{ 
    Member E = new Member(); 
    E = E.Login(txtEmail.Text, txtPassword.Text); 
    Session["user"] = E; 
    if (Session["user"] != null) 
    { 
     E = (Member)Session["user"]; 
     if (E.UserType == "Doctor") 
     { 
      Response.Redirect("Donate.aspx"); 
     } 
     else if (E.UserType == "admin") 
     { 
      Response.Redirect("admin.aspx"); 
     } 
     else 
     { 
      Response.Redirect("user.aspx"); 
     } 
    } 
    else 

    { 
     lblMessage.ForeColor = System.Drawing.Color.Red; 
     lblMessage.Text = "Invalid Email/password"; 
    }  
} 
} 

это ВойтиКак я могу перенаправить пользователей на другие страницы, основанные на данных сессии в осины

public Member Login(string Email, string Password) 
{ 
    string constr = "Data Source = YAZAN-PC ; initial catalog = Aged ; user = sa; pwd = yazan7;"; 
    SqlConnection conn = new SqlConnection(constr); 
    SqlDataAdapter da = new SqlDataAdapter("Authenticate", conn); 
    da.SelectCommand.CommandType = System.Data.CommandType.StoredProcedure; 
    da.SelectCommand.Parameters.AddWithValue("@Email", Email); 
    da.SelectCommand.Parameters.AddWithValue("@Password", Password); 
    DataTable dt = new DataTable(); 
    conn.Open(); 
    da.Fill(dt); 
    conn.Close(); 
    if (dt.Rows.Count > 0) 
     return new Member 
ID = int.Parse(dt.Rows[0]["ID"].ToString()), 
      FName = dt.Rows[0]["FName"].ToString(), 
      LName = dt.Rows[0]["LName"].ToString(), 
      Email = dt.Rows[0]["Email"].ToString(),   
      Gender = dt.Rows[0]["Gender"].ToString(), 
      Password = dt.Rows[0]["Password"].ToString(), 
      RePassword = dt.Rows[0]["RePassword"].ToString(), 
      UserType = dt.Rows[0]["UserType"].ToString(), 
      BirthDate = dt.Rows[0]["BirthDate"].ToString(), 

Это класс

У меня есть 3 пользователей Доктор админ Family я необходимо, когда пользователь вводит , если он является врачом, перенаправляющим на страницу (doctor.aspx) еще , если он является администратором, перенаправляющим на страницу (admin.aspx) как это сделать, используя сеанс ????

+0

Что вы храните в сеансе? –

+0

Просьба указать код о том, как вы в настоящее время возвращаете информацию о пользователе при входе в систему. – sr28

+0

i, но код будет показывать его plz –

ответ

0

определить класс входа ..

class dcLogin 
{ 
public id string{get;set;} 
public name string{get;set;} 
public type string{get;set;} 
} 

при регистрации пользователя в то .. набор

dcLogin objLog=new dcLogin(); 
objLog.id=userid; objLog.name=username; 
objLog.type='usertype'--admin/doctor/user 

session["loginuser"]=objLog; 

теперь вы можете проверить пользователя ввести любое время.

dcLogin objLog=(dcLogin)session["loginuser"]; 
if(objLog.type=="admin") 
{ 
response.redirect("admin.aspx"); 
} 

Edit2: создать единую домашнюю страницу после авторизации.

loginhome.aspx 

protected void page_lod() 
{ 
if(session["user"]!=null) 
{ 
    Member E=(Member)session["user"]; 
if(E.UserType =="Doctor") 
{ 
    response.rediter("doctor.aspx"); 
} 
else if(E.UserType =="admin") 
{ 
    response.rediter("admin.aspx"); 
} 
else 
{ 
response.rediter("user.aspx"); 
} 
} 
} 
+0

я положил мой код будет принимать у взглянуть на него поблагодарить у –

+0

@YazanTamimi см edit2 –

+0

Спасибо я испытаю его, и я скажу, что будет происходить с me еще раз спасибо –

0

В зависимости от того, что вы храните в сеансе, вы можете использовать его для извлечения данных о пользователе. Поскольку вам не предоставлен какой-либо код или логика тому, как вы хотите выполнять эти действия, я собираюсь угадать.

  1. Получить значение из сеанса (Say идентификатор пользователя)
  2. Используйте этот идентификатор из сеанса для извлечения пользовательских данных из базы данных или списка
  3. с возвращенными, получить «звание»/«привилегированное» значение, поэтому скажите, что доктор равен 1, семье 2, пользователям 3
  4. Сделайте переход на ранг и в зависимости от того, является ли это 1, 2 или 3, перенаправлять соответственно.

Надеюсь, это поможет вам.

0

Хорошо, вы получаете сообщение об ошибке, поскольку сеанс равен нулю. Я не могу поверить, что ваш код входа в систему компилируется, так как вы возвращаете строку «возвращаемый новый элемент», за которой следуют строки настроек свойств, неверно. Однако, что в стороне, я бы предположил, что ваша проблема вызвана вашим методом Login.

Я бы написал так:

public Member Login(string Email, string Password) 
{ 
    string constr = "Data Source = YAZAN-PC ; initial catalog = Aged ; user = sa; pwd = yazan7;"; 

    DataTable dt = new DataTable(); 
    using(SqlConnection conn = new SqlConnection(constr)) 
    { 
     SqlDataAdapter da = new SqlDataAdapter("Authenticate", conn); 
     da.SelectCommand.CommandType = System.Data.CommandType.StoredProcedure; 
     da.SelectCommand.Parameters.AddWithValue("@Email", Email); 
     da.SelectCommand.Parameters.AddWithValue("@Password", Password); 
     da.Fill(dt); 
    } 

    Member m = new Member(); 

    if (dt.Rows.Count > 0) 
    { 
     //Set member properties 
     m.ID = int.Parse(dt.Rows[0]["ID"].ToString()); 
     m.FName = dt.Rows[0]["FName"].ToString(); 
     m.LName = dt.Rows[0]["LName"].ToString(); 
     m.Email = dt.Rows[0]["Email"].ToString();   
     m.Gender = dt.Rows[0]["Gender"].ToString(); 
     m.Password = dt.Rows[0]["Password"].ToString(); 
     m.RePassword = dt.Rows[0]["RePassword"].ToString(); 
     m.UserType = dt.Rows[0]["UserType"].ToString(); 
     m.BirthDate = dt.Rows[0]["BirthDate"].ToString(); 

     //add any other properties needed to be filled. 
    } 

    return m; 
} 

Вы бы затем использовать «UserType» в соответствии с вашим текущим кодом. В зависимости от значений, которые вы можете использовать для «UserType», зависит от того, что вы проверяете. Если у вас есть значения, такие как «Доктор», вы можете захотеть убедиться, что вы обрезаете пробел и что ваша проверка не чувствительна к регистру, например:

if (E.UserType.Trim().Equals("Doctor", StringComparison.InvariantCultureIgnoreCase)) 
{ 
    Response.Redirect("Donate.aspx"); 
} 
+0

спасибо, я сделаю это, как то, что сказал @ sr28 –

Смежные вопросы