PDA

View Full Version : باید دوبار لاگین کنم!!!!!!



el_abdollahi
شنبه 09 شهریور 1387, 14:59 عصر
سلام
این کد صفحه Login منه :

Protected Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn_login.Click
Try
If Validate_Value() Then
If Login() Then
Response.Redirect("~/CP/Default.aspx")
Else
Me.lblError.Text = "نام کاربری و یا کلمه عبور شما نادرست است."
End If
Else
Me.lblError.Text = "لطفا نام کاربری و کلمه عبور را وارد نمایید."
End If
Catch ex As Exception
Me.lblError.Text = ex.Message
End Try
End Subمن با تابع Login لاگین میکنم.همه چیز خوبه.کد اجرا میشه. سشن ها پر میشن .
ولی وقتی به Response.Redirect میرسه به داخل catch میپره و این خطا رو میده :
{System.Threading.ThreadAbortException}
البته اگر try/catch رو نزارم هیچ اتفاقی نمیفته.
به هر حال به صفحه default میرم. بعد اونجا وقتی میخوام به هر صفحه ای که این کد توشه برم:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.lblError.Text = ""
If Session("u_id") Is Nothing Then
Response.Redirect("~/CP/Login.aspx")
End If
End Subدوباره به صفحه login میرم . البته از اینجا به بعد اصلا break point ها عمل نمیکنن و من نمیفهمم چه اتفاقی میفته.
من دوباره لاگین میکنم. واین باز میتونم به هر صفحه ای که میخوام برم ولی بدون اثر brealk point.
:متفکر:
منتظر کمک هاتون هستم.

سار
شنبه 09 شهریور 1387, 16:37 عصر
روی Solution در پنجره ی Solution explorer دکمه سمت راست ماس رو بزن و بعد گزینه ی Clean Solution رو انتخاب کن و دوباره پروژت رو بیلد کن.
البته اگر تو پروژت class library داری بهتر اونها رو هم قبل از اینکار از تو Bin حذف کنی و بعد دوباره اضافه کنی.
با این کار باید نقاط شکستت(Breakpoint) کارکنه

el_abdollahi
یک شنبه 10 شهریور 1387, 09:23 صبح
سلام
من از VS 2005 استفاده میکنم. جایی Clean Solution ندیدم / میشه بیشتر توضیح بدین.
کسی نمیدونه این خطا واسه چیه : {System.Threading.ThreadAbortException}

Behrouz_Rad
یک شنبه 10 شهریور 1387, 13:21 عصر
من فکر می کنم این سوال بعد از نحوه ی ارسال ایمیل، دومین سوال از نظر تعداد تکرار در این بخشه.
بارها گفته شده باز هم گفته میشه که:
متد Redirect چون یک خطای داخلی از نوع ThreadAbortException پرتاب می کنه و این خطا از دید برنامه نویس پنهان هست، در نتیجه در صورت وجود در ساختار Try-Catch همیشه قسمت Catch اجرا میشه.
ساختار کد نویسی خودتون رو تغییر بدید.

موفق باشید.

el_abdollahi
یک شنبه 10 شهریور 1387, 14:50 عصر
سلام
میبخشید که خوب نسرچیدم.
یعنی هیچ جوری نمیشه جلوی این خطا رو گرفت ؟
چرا باید دوبار login کنم؟؟؟؟

Neo Persian
یک شنبه 10 شهریور 1387, 15:14 عصر
همان طور كه گفتن ساختار كدنويسي رو تغيير بدين ولي از اين متد هم ميتونيد استفاده كنيد:

ُ
Server.Transfer("~/CP/Default.aspx")

el_abdollahi
دوشنبه 11 شهریور 1387, 09:19 صبح
سلام
من پارامتر دوم Response.Redirect رو False دادم و دیگه توی Catch نرفت. ممنون
ولی هنوز من باید دوبار لاگین کنم و پس از لاگین اول Break Point ها کار نمیکنن!!!
اول فکر میکردم مشکل از Response.Redirecte . ولی حالا فکر میکنم مشکل از یه جای دیگس.
نظر شما چیه؟؟؟؟

el_abdollahi
سه شنبه 12 شهریور 1387, 09:06 صبح
آیا کسی نیست مرا یاری دهد؟؟؟

milade
سه شنبه 12 شهریور 1387, 09:20 صبح
می شه کد رو به صورت کامل(منظورم کد Validate_Value() و یا login() )رو هم بزارید؟
بای

el_abdollahi
سه شنبه 12 شهریور 1387, 09:31 صبح
Private Function Validate_Value() As Boolean
If Me.txt_username.Text.Trim = "" Or Me.txt_password.Text.Trim = "" Then
Return False
Else
Return True
End If
End Function



Private Function Login() As Boolean
Dim Usercls As New UserBLL
Dim dt As New oghaf.tbl_UserDataTable
dt = Usercls.Login_Opr(Me.txt_username.Text.Trim, Me.txt_password.Text.Trim)
If dt.Rows.Count = 1 Then
Dim str_login, str_sex, str_last As String
Dim dr As oghaf.tbl_userRow = dt.Rows(0)
If dr.u_sex Then
str_sex = "خانم"
Else
str_sex = "آقای"
End If
str_login = "کاربر گرامی " & str_sex & " " & dr.u_name & " " & dr.u_family & " خوش آمدید "
str_last = "آخرین ورود شما روز : " & Farhani.PersianDate.PerDate.RevrseDate(dr.u_date_l ast) & "ساعت " & dr.u_time_last
Session.Add("u_id", dr.u_id)
Session.Add("Logon", str_login)
Session.Add("Last_Visit", str_last)
Usercls.LastVisit(dr.u_id, perdate.Today, DateTime.Now.ToShortTimeString)
Return True
Else
Return False
End If
End Function

همون طور که میبینید چیز خاصی نداره.
اینکه BreakPoint ها کار نمیکنند خیلی اذیت میشم. احساس میکنم دست و پام رو محکم بستن. لطفا کمک کنید.

milade
سه شنبه 12 شهریور 1387, 10:17 صبح
ببین دوست عزیز چرا از if استفاده نمی کنی؟(توی تعیین هویت؟)

el_abdollahi
سه شنبه 12 شهریور 1387, 10:28 صبح
منظورتون رو نمیگیرم. میشه واضح تر بگین.