PDA

View Full Version : تابع بررسی نام کاربری در asp



parseh21
پنج شنبه 18 اردیبهشت 1393, 00:00 صبح
با درود

دوستان, من توابع رو در یک کلاس نوشتم, یکی از این توابع login هست. مشکلی که وجود دارد هنگام کلیک بر روی دکمه ورود erroe میده.

public static bool user_login_exist(string user_login)
{
SqlConnection cnn= new SqlConnection("Data Source=.;Initial Catalog=test;Integrated Security=true");
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "SELECT user_ID FROM users WHERE user_login=@user_login";
cmd.Parameters.AddWithValue("@user_login",user_login);
DataTable dt = new DataTable();
cnn.Open();
dt.Load(cmd.ExecuteReader());
cnn.Close();
if (dt.Rows.Count == 1)
{
return true;

}
else
{
return false;
}
}


این هم کد صفحه login



protected void btn_login_Click(object sender, EventArgs e)
{
string user_login = txtlogin.Text;
string user_password = txtpass.Text;
if (user_login == "" || user_password == "")
{
lblmessage.Visible = true;
lblmessage.Text = "لطفا اطلاعات را به صورت صحیح وارد نمایید";
}
else if (sec_code.Text != Session["sec_code"].ToString()){
lblmessage.Visible = true;
lblmessage.Text = "کد امنیتی اشتباه است";
lblsec.Text = usersUtility.generateSecurity();
}
else{
if (usersUtility.check_login(usersUtility.sanitize_Sq l(user_login), usersUtility.sanitize_Sql(user_password)))
{
HttpContext.Current.Session.Add("userLogin", user_login);
Response.Redirect("index.aspx");
}
else{
lblmessage.Visible = true;
lblmessage.Text = "نام کاربری یا کلمه عبور صحیح نمی باشد";
lblsec.Text = usersUtility.generateSecurity();
}
}
}


ممنون میشم راهنمایی فرمایید.

meysam99
پنج شنبه 18 اردیبهشت 1393, 00:11 صبح
شما چرا دوباره میخواید چرخ رو اختراع کنید.
خود asp.net یک سیستم برای لاگین کردن داره از همون استفاده کن خیلی مطمئن تر هم هست و احتیاج به این همه کد هم نداره. می تونی از سیستم جدید identity هم استفاده کنی.
http://www.asp.net/identity

parseh21
پنج شنبه 18 اردیبهشت 1393, 22:55 عصر
گرامی یا من بد منظورمو رسوندم یا ...
به هر روی دوست من, علاوه بر این صفحه امکان ثبت نام نیز وجود دارد که باز همین مشکل برای اون هم هست, می خواهم خود کاربر بتونه ثبت نام کنه و هم بتونه لاگین کنه و البته با کد امنیتی. می دونم تا حدود زیادی این کدها درسته اما اشکال کوچکی وجود داره که حتما شما اساتید بزرگوار به من کمک می کنید.

majidnazari65
پنج شنبه 18 اردیبهشت 1393, 23:22 عصر
سلام.
شما بفرمایید که خطا در چه خطی و در کدام تابع اتفاق می افته؟و اینکه متن خطا چی هست؟ اینطوری که شما گفتید تشخیصش سخته.

parseh21
جمعه 19 اردیبهشت 1393, 00:21 صبح
در هر دو صفحه ورود و ثبت نام این حطا را می دهد. A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) بعد از لاگین صفحه ای با نام Disassembly باز می شود و به خطی اشاره دارد که این پیغام را دارد 000001ee mov dword ptr [ebp-7ch],eax اما بعد از ثبت نام در صفحه egister به این خط اشاره می کند else if (usersUtility.user_login_exist(txtlogin.Text))

majidnazari65
جمعه 19 اردیبهشت 1393, 11:09 صبح
مشکل اینجاست که سروری که قصد داری بهش متصل بشی در دسترس نیست.
اول چک کن که با ابزارهای دیگه مثل sql server management میتونی به سرور وصل بشی یا خیر؟ در صورتی که جواب مثبت بود، بجای . یا local در connection string نام کامل سرور رو بنویس.
در غیر این صورت نگاهی به این لینک (http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server-microsoft-sql-server-error/) بنداز. چند راه حل که ممکنه مشکل شما رو در ارتباط با سرور حل کنه گفته شده.

parseh21
جمعه 19 اردیبهشت 1393, 14:39 عصر
درود مجدد

یک پروژه جدید دیگه ایجاد کردم و خیلی ساده بدون کد امنیتی و ... تست کردم باز ایراد می گیره. ایرادی که می گیره مربوط است به خط con.Open();

خطایی هم که میده:
The ConnectionString property has not been initialized.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: The ConnectionString property has not been initialized.

majidnazari65
جمعه 19 اردیبهشت 1393, 17:34 عصر
سعی کن با یک فایل udl ارتباط بگیری از سرور و دیتابیس.
یک فایل متنی خالی با پسوند udl بساز و بازش کن. در پنجره ای که ظاهر میشه سرور و دیتابیس رو انتخاب کن و تنظیماتش رو انجام بده روی Test Connection کلیک کن تا ببینی که میتونی به دیتابیس وصل بشی. اگر نشد روشهای گفته شده در لینک پست قبلی رو تست کن تا ببینی مشکل از کجاس.

parseh21
جمعه 19 اردیبهشت 1393, 20:08 عصر
با udl هم تست کردم اما هیچ. شاید مشکل از تنظیمات من باشه.
اگر ممکن است یه نگاه کوچکی به این بندازید شاید کلید به دست شما راحت تر باز شود.

majidnazari65
جمعه 19 اردیبهشت 1393, 20:52 عصر
شما میخوای به فایل mdf که در پوشه App_Data قرار داره متصل بشی. برای این کار اولا باید sql express نصب داشته باشی و دوما از رشته اتصال به صورت زیر استفاده کنی و فایل test.mdf رو در رشته اتصال معرفی کنی:
Data Source=.;AttachDbFilename=|DataDirectory|\test.mdf ;Integrated Security=true
من چون sql express نصب ندارم نمیتونم ارتباط بگیرم. با رشته اتصال بالا امتحان کن.