PDA

View Full Version : مشکل در ادامه صفحه لاگین



mjt10063
جمعه 06 اردیبهشت 1392, 18:04 عصر
با سلام دوستان
برای لاگین کردن ما به یه دیتابیس نیاز داریم
که من ایجاد کردم
و ما باید اطلاعات را از دیتا بیس واکشی کنیم
که اونم با گذاشتن ابزار SQLdataSource1 و ویزارد اون اول به دیتابیس متصل میشم و بعد دستور sql رو مینویسم


<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [login] WHERE (([user_n] = @user_n) AND ([pas] = @pas))">
<SelectParameters>
<asp:ControlParameter ControlID="TextBox1" Name="user_n" PropertyName="Text"
Type="String" />
<asp:ControlParameter ControlID="TextBox2" Name="pas" PropertyName="Text"
Type="String" />
</SelectParameters>
</asp:SqlDataSource>


خوب حالا مشکل من اینه که چطوری بگم یعنی توی رویداد


protected void Button1_Click(object sender, EventArgs e)
{

}

چی بنویسم
که اگر اطلاعات text1 , text2 با اطلاعات جدول یکی بود به صفحه دیگری انتقال داده بشه

و سوال دوم اینه که به نظر شما من دیتابیس رو به صورت کد نویسی کانت بکنم بهتره یا از ابزار استفاده کنم

tree1371
جمعه 06 اردیبهشت 1392, 18:18 عصر
چرا با sqldatasource ?

چرا با کد نمی نویسید ؟

شما باید در مکتدتون sqldataspurce1 رو run کنید.

mjt10063
جمعه 06 اردیبهشت 1392, 18:25 عصر
داشی می خوام با کد بنویسم ولی بلد نیسم کلی
گشتم تا اینجاش رو تونستم بفهمم
با C# توی محیط ویندوز بلدم لاگین بسازم ولی توی وب با ASP بلد نیستم

شما اگر کدش رو دارید میشه بگید تا ما هم یاد بگیریم

لازم به ذکر بیشتر دوست دارم با کد یاد بگیرم

tree1371
جمعه 06 اردیبهشت 1392, 18:35 عصر
بفر مایید

SqlCommand cmd = new SqlCommand("ChekUserAdminLogin", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@User", SqlDbType.VarChar).Value = User;
cmd.Parameters.Add("@pass", SqlDbType.VarChar).Value = PassWord;



try
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}

SqlDataReader read = cmd.ExecuteReader();
read.Read();
if (read.HasRows)
{
string UserId = read.GetInt32(0).ToString();
return UserId.ToString();


}
else
{
return "No";
}

mjt10063
جمعه 06 اردیبهشت 1392, 18:43 عصر
ممنون دوست عزیز ولی خط کنکشن رو جا نزاشتی
و در ضمن نگفتی من دستور if رو توی رویداد کلیک باتن بزارم ؟؟

tree1371
جمعه 06 اردیبهشت 1392, 18:58 عصر
من کانکشن رو در بالای کل متدهام صدا میزنم چونه از سه لایثه استفاده می کنم تا اذیت نشم هربار صدا کمنم

کل این رو باید در رویداد کلیک نوشت .

جای این

return UserId.ToString();


می تونید سشن رو مساوی آی دی کاربر قرار بدید تا بتونید ازش در کل پروژه و چک کردن استفاده کنید.

mjt10063
جمعه 06 اردیبهشت 1392, 19:22 عصر
دوست عزیز این کدی هست که من با کمک شما نوشتم
و جواب میده


SqlConnection scon = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\Database.mdf;Integrated Security=True;User Instance=True");
scon.Open();
string selstr = "select * from login where user_n ='" + TextBox1.Text + "' and pas = '" + TextBox2.Text + "'";
SqlCommand scm = new SqlCommand(selstr, scon);
SqlDataReader sdr = scm.ExecuteReader();
if (sdr.HasRows)
{
sdr.Read();
Label1.Text = "کد کاربری یا کلمه عبور صحیح است";

}
else
{
Label1.Text = "کد کاربری یا کلمه عبور اشتباه است";
}

ولی سوالم اینه که در رابطه با سیشن که گفتید

اگر این کد رو من توی web.config


<system.web>
<compilation debug="false" targetFramework="4.0" />
<authentication mode="Forms">
<forms name=".ASPXUTH"
loginUrl ="login.aspx "
protection="All"
timeout="30"
path="/"
requireSSL="false"
slidingExpiration="true"
cookieless="UseDeviceProfile"/>
</authentication>
</system.web>


قرار بدم عمل نمی کنه ؟؟


و سوال آخر

کدی که از صفحه1 به صفحه2 انتقال داده بشه چیه

tree1371
جمعه 06 اردیبهشت 1392, 19:31 عصر
عزیز session رو باید تو صفحه بنویسید.

منظور از سوال آخرتون چی هست؟

mjt10063
جمعه 06 اردیبهشت 1392, 20:21 عصر
داشی یه مثال از کد سشن برام بزار

tree1371
جمعه 06 اردیبهشت 1392, 23:02 عصر
this.session["user"]=userid;


واسه چک کردن ورود هم می تونی از دستور زیر استفاده کنی


if(session["user"] == "" || session["user"] == null)
{
کاتربر وارد نشده بفرست به صفحه لاگین }

else
{

کاربر وارد شده هر کاری دوست داری باهاش بکن
}

mjt10063
جمعه 06 اردیبهشت 1392, 23:11 عصر
دوست عزیز به اینجا هم یه نگاه بنداز
اینجا (http://barnamenevis.org/showthread.php?395509-%D8%B3%D9%86%D8%AC%D8%B4-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D9%88-%D8%B1%D9%81%D8%AA%D9%86-%D8%A8%D9%87-%D8%B5%D9%81%D8%AD%D9%87-%D8%A8%D8%B9%D8%AF)

الان اینهای که گزاشتی من کجای کدم وارد کنم
دوست من
user که به رنگ آبی جای تعریف شده؟؟

شرمنده اگر زیاد میپرسم ها
اخه زیاد با asp کار نکردم

وقتی این کد که قبلا نوشته بودی رو اضافه کردم این ارور اومده


sdr.Read();
Label1.Text = "کد کاربری یا کلمه عبور صحیح است";
string UserId = sdr.GetInt32(0).ToString();
return UserId.ToString();




Error 1 Since '_Default.Button1_Click(object, System.EventArgs)' returns void, a return keyword must not be followed by an object expression D:\visual studio 2010\testlogin\login.aspx.cs 28 13 D:\visual studio 2010\testlogin\

hesamsalehnamadi
شنبه 07 اردیبهشت 1392, 06:45 صبح
از کدهای زیر استفاده کن... یکم ور بری باهاش تمومه



SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrin gs["nikanCS"].ConnectionString);
try
{
FormsAuthentication.Initialize();
SqlCommand Comm = new SqlCommand("select username,password,fullname from Users where username='" + UserTextBox.Text + "' AND password='" + PasswordTextBox.Text + "'", Conn);
Conn.Open();
SqlDataReader DR = Comm.ExecuteReader();
if (DR.HasRows)
{
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(PasswordTextBox.Text, true, 30);
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
if (ticket.IsPersistent)
cookie.Expires = ticket.Expiration;
Response.Cookies.Add(cookie);
DR.Read();
FormsAuthentication.RedirectFromLoginPage(DR["fullname"].ToString(), false);
// Session.Add("NameFamily", DR["fullname"].ToString().Trim());
Response.Redirect("Ad_index.aspx");
}
else
{
string script = "alert('نام کاربری یا رمز عبور اشتباه می باشد ');";
ScriptManager.RegisterClientScriptBlock(BtnEnter, typeof(UpdatePanel), "jscript", script, true);
}
DR.Close();
}
catch (Exception ex)
{
string script = "alert('خطا در ورود ');";
ScriptManager.RegisterClientScriptBlock(BtnEnter, typeof(UpdatePanel), "jscript", script, true);
Response.Write(ex.Message);
}
finally
{
Conn.Close();
}

mjt10063
شنبه 07 اردیبهشت 1392, 12:47 عصر
دوست عزیز خسته نباشی
من کد شما رو گذاشتم ولی زیر یک سری کلمات خط قرمز کشیده


FormsAuthentication و FormsAuthenticationTicket


فکر کنم در قسمت بالای صفحه


using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;


باید کدی رو وارد کنم

mjt10063
شنبه 07 اردیبهشت 1392, 16:38 عصر
دوست عزیز من کد نییم اسپیس رو پیدا کردم
using System.Web.Security;

خوب ولی بازم این خط کد شما هنوزم ارور میده


ScriptManager.RegisterClientScriptBlock(BtnEnter, typeof(UpdatePanel), "jscript", script, true);


دوست عزیز موقع خروج اگر از این کد استفاده کنم درسته


Session.Clear();
Response.Redirect("Login.aspx");

hesamsalehnamadi
شنبه 07 اردیبهشت 1392, 20:03 عصر
دوست عزیز من کد نییم اسپیس رو پیدا کردم
using System.Web.Security;

خوب ولی بازم این خط کد شما هنوزم ارور میده


ScriptManager.RegisterClientScriptBlock(BtnEnter, typeof(UpdatePanel), "jscript", script, true);


این خط برای چاپ پیغام هست به دلخواهت میتونی عوض کنی

برای خروج هم از کد زیر استفاده کن بعد


FormsAuthentication.SignOut();


این هم یادت نره برای اعتبار سنجی کاربر از کد زیر تو page_load صفحات مدیریت استفاده کن



if (!HttpContext.Current.User.Identity.IsAuthenticate d)
{
Response.Redirect("~/index.html");
}

hesamsalehnamadi
شنبه 07 اردیبهشت 1392, 20:36 عصر
این نمونه رو هم دانلود کن راحت شو :چشمک:

http://uploadtak.com/images/r5873_admin_login.rar

tree1371
شنبه 07 اردیبهشت 1392, 22:14 عصر
کد رو به صورت کامل بزارید بهتون پاسخ بدم