Milo_22
چهارشنبه 20 دی 1391, 19:57 عصر
با سلام
من یک وب اپلیکشن ایجاد کردم که می خوام در اون دو تا سطح از دسترسی داشته باشم. اصلا بلد نیستم با session ها چطوری کار کنم برای همین اینطوری کد نوشتم :
protected void btnOk_Click(object sender, EventArgs e)
{
try
{
string user_n = txtUser.Text;
string pass_n = txtPass.Text;
Int32 res = 0;
DAL.DAL log = new DAL.DAL();
res = log.login_user_form(user_n, pass_n);
if (res == 1)
{
if (user_n == "admin")
{
Response.Redirect("manage/AdminPage.aspx");
}
else
{
Response.Redirect("modcp/defult3.aspx");
}
}
else
{
lblRes.Text = "نام کاربری و یا کلمه عبور صحیح نمی باشد";
}
}
catch (Exception ex)
{
lblRes.Text = ex.ToString();
}
}
}
تو لایه DAL این کد رو نوشتم :
public Int32 login_user_form(String username, String password)
{
int res = 0;
con = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand("EXEC chek_user '" + username + "' , '" + password + "'", con);
try
{
con.Open();
if (cmd.ExecuteScalar() == null)
{
res = 0;
}
else
{
res = 1;
}
con.Close();
}
catch (SqlException)
{
throw;
}
return res;
}
اینم استور پروسیجرم هست :
@username nvarchar(50) , @password nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
SELECT username_l1 , password_l1
FROM user_L1
WHERE username_l1 = @username AND password_l1 = @password
END
حالا من نمی دونم چرا این خط کد اصلا اجرا نمیشه :
Response.Redirect("manage/AdminPage.aspx");
اگر من بیام به جای این خط اینطوری بنویسم :
txtPass.Visible = false;
lblRes.Text = "شما با نام admin وارد شده اید";
درست کار می کنه کدم ولی نمی دونم چرا وقتی می خواد بره یک صفحه دیگه اصلا این کار رو انجام نمیده.
تو وب کانفیگ شاخه manage هم اینطوری نوشتم :
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</configuration>
یعنی قبلا کلی کد نوشته بودم ولی همش رو پاک کردم فقط به همین بسنده کردم ،
اینم وب کانفیگ ریشه :
<authentication mode="Forms">
<forms loginUrl="Login.aspx">
</forms>
</authentication>
<authorization>
<allow users="*"/>
</authorization>
ممکنه لطفا راهنمایی بدین ؟ سپاسگذارم ...
من یک وب اپلیکشن ایجاد کردم که می خوام در اون دو تا سطح از دسترسی داشته باشم. اصلا بلد نیستم با session ها چطوری کار کنم برای همین اینطوری کد نوشتم :
protected void btnOk_Click(object sender, EventArgs e)
{
try
{
string user_n = txtUser.Text;
string pass_n = txtPass.Text;
Int32 res = 0;
DAL.DAL log = new DAL.DAL();
res = log.login_user_form(user_n, pass_n);
if (res == 1)
{
if (user_n == "admin")
{
Response.Redirect("manage/AdminPage.aspx");
}
else
{
Response.Redirect("modcp/defult3.aspx");
}
}
else
{
lblRes.Text = "نام کاربری و یا کلمه عبور صحیح نمی باشد";
}
}
catch (Exception ex)
{
lblRes.Text = ex.ToString();
}
}
}
تو لایه DAL این کد رو نوشتم :
public Int32 login_user_form(String username, String password)
{
int res = 0;
con = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand("EXEC chek_user '" + username + "' , '" + password + "'", con);
try
{
con.Open();
if (cmd.ExecuteScalar() == null)
{
res = 0;
}
else
{
res = 1;
}
con.Close();
}
catch (SqlException)
{
throw;
}
return res;
}
اینم استور پروسیجرم هست :
@username nvarchar(50) , @password nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
SELECT username_l1 , password_l1
FROM user_L1
WHERE username_l1 = @username AND password_l1 = @password
END
حالا من نمی دونم چرا این خط کد اصلا اجرا نمیشه :
Response.Redirect("manage/AdminPage.aspx");
اگر من بیام به جای این خط اینطوری بنویسم :
txtPass.Visible = false;
lblRes.Text = "شما با نام admin وارد شده اید";
درست کار می کنه کدم ولی نمی دونم چرا وقتی می خواد بره یک صفحه دیگه اصلا این کار رو انجام نمیده.
تو وب کانفیگ شاخه manage هم اینطوری نوشتم :
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</configuration>
یعنی قبلا کلی کد نوشته بودم ولی همش رو پاک کردم فقط به همین بسنده کردم ،
اینم وب کانفیگ ریشه :
<authentication mode="Forms">
<forms loginUrl="Login.aspx">
</forms>
</authentication>
<authorization>
<allow users="*"/>
</authorization>
ممکنه لطفا راهنمایی بدین ؟ سپاسگذارم ...