View Full Version : مشکل login نشدن در mvc
mohamadrezaseif
شنبه 20 دی 1393, 14:55 عصر
در برنامه ای که نوشتم کاربر برای دسترسی به صفحه ای خاص باید login بشه اما بعد از login شدن همچنان اجازه ورود به اون صفحه نداره و دوباره صفحه login فرستاده میشه
من برای login شدن از همون جداول و کدهای استاد کرامتی که در کلاس عملی eshop استفاده کرده بود استفاده کردم اما نمی دونم چرا اینطوری میشه
اگر میشه کمکم کنید
مرسی
RIG000
شنبه 20 دی 1393, 15:08 عصر
دوست عزیز شما از break point ها استفاده کن.
شما یا اشتباه لاگین میکنی!
یا provderداری و provideret رو تامین نمیکنی.
یا دیتابیست مقدار نداره.
یا return مناسبی نداری.
یا درست لاگین میکنی و ridirect login میکنی!
و
.
.
.
هر چیزی ممکن است.
mohamadrezaseif
شنبه 20 دی 1393, 17:42 عصر
خیلی ممنون دوست عزیز بابت جواب
از
break point استفاده کردم موقع login شدن مشکلی پیش نمیاد و کاملا مراحل لاگین شدن رد می کنه اما موقع فرستادن صفحه ای که قفل شده باز برمی گرده به همون صفحه لاگین و خیلی عجیبه واسم
مشکل دیتابیس نداره چون وقتی یوزر و پسورد اشتباه وارد می کنم میگه اشتباست
این خط نفهمیدم چیه اگر میشه توضیح بدید
یا provderداری و provideret رو تامین نمیکنی.
مرسی از توجهتون
hakim22
شنبه 20 دی 1393, 17:54 عصر
مطمئن بشید که کاربر شما در Role مورد نیاز باشد. ممکنه صفحه ای میخواهید باز کنید نیاز به یک Role خاصی مثلا "Admin" داشته باشه و کاربری که باهاش وارد شدید این سمت رو نداشته باشه
mohamadrezaseif
شنبه 20 دی 1393, 18:05 عصر
میشه بگید توی mvc موقع لاگین شدن چه چیزی true میشه ?
اینم کد لاگین شدن برنامست که مقدارهای دریافتی از ویو رو با بانک مقایسه می کنه و تمام این مقایسه درست انجام میشه و وارد return Redirect میشه اما بازم صفحه لاگین نشون میده و حتی پیج های دیگه هم به صورت دستی وارد کنم بازم صفحه لاگین نشون میده
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel login, string ReturnUrl)
{
// How to MD5 Hash password:
string source = "mkamkadmvvkd";
string hashed = FormsAuthentication.HashPasswordForStoringInConfig File(source, "MD5");
//string ReturnUrl = Request.QueryString["ReturnUrl"];
if (ModelState.IsValid)
{
if (db.Users.Any(u => u.Username == login.Username && u.Password == login.Password))
{
FormsAuthentication.SetAuthCookie(login.Username, login.RememberMe);
if (!string.IsNullOrEmpty(ReturnUrl))
{
return Redirect(ReturnUrl);
}
else
{
return RedirectToAction("List","Products");
}
}
}
ModelState.AddModelError("", "نام کاربر یا کلمه عبور صحیح نیست");
return View(login);
}
mohamadrezaseif
شنبه 20 دی 1393, 18:09 عصر
مطمئن بشید که کاربر شما در Role مورد نیاز باشد. ممکنه صفحه ای میخواهید باز کنید نیاز به یک Role خاصی مثلا "Admin" داشته باشه و کاربری که باهاش وارد شدید این سمت رو نداشته باشه
نه مشکل اون نیست هنوز role واسش تعیین نکردم و همون [Authorize] خالی رو گذاشتم
RIG000
شنبه 20 دی 1393, 20:38 عصر
else {
return RedirectToAction("List","Products");
}
ایا به داخل else رسید ؟else اجرا شد؟
اینجوری که شما داری میگی string ReturnUrl شما null نیست.
provider منظورم همونroleproviderبود.
mohamadrezaseif
شنبه 20 دی 1393, 21:32 عصر
else {
return RedirectToAction("List","Products");
}
ایا به داخل else رسید ؟else اجرا شد؟
اینجوری که شما داری میگی string ReturnUrl شما null نیست.
provider منظورم همونroleproviderبود.
اگه مستقیم به پیج لاگین بریم وارد else میشه اما اگر از صفحه دیگه که سطح دسترسی واسش گذاشتیم وارد لاگین بشه نه وارد else نمیشه
RIG000
شنبه 20 دی 1393, 23:18 عصر
پس الان مستقیم وارد میشه ولی از صفحه ای که نیاز به return url داره بعد لاگین دو باره وارد لاگین میشه؟ که اونجا دسترسی رو بدون لاگین اجازه نمیدی درسته؟
mohamadrezaseif
یک شنبه 21 دی 1393, 13:03 عصر
پس الان مستقیم وارد میشه ولی از صفحه ای که نیاز به return url داره بعد لاگین دو باره وارد لاگین میشه؟ که اونجا دسترسی رو بدون لاگین اجازه نمیدی درسته؟
بله همینطوره یه جوری رفتار می کنه که انگار کاربر وارد نشده و هر چی می خوام به اون صفحه ی خاص دسترسی داشته باشم می فرستم توی لاگین با وجودی که کاربر وارد شده
RIG000
یک شنبه 21 دی 1393, 22:16 عصر
Authorize مشکل شما از کد های لاگین نیست. به صفحه ای که میخاید برید Authorize رو از اون کنترولر کامنت کنید. مشکل شما با roleهاست
mohamadrezaseif
دوشنبه 22 دی 1393, 11:03 صبح
مشکل حل شد
مرسی از شما بابت جواب
واسه اینکه اگه کسی همچین مشکلی واسش پیش اومد بتونه حلش کنه میگم چیکار کردم که درست شد
بعد از دیدن چندتا فیلم آموزشی خارجی فهمیدم واسه اینکه اکانت مخصوص به خودمون داشته باشیم باید وقتی که می خوایم پروژه رو بسازیم Change Authentication روی No Authentication بذاریم
باز همه ممنون از دوستان بابت راهنمایی
127488
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.