ورود

View Full Version : مشکل با authencate شدن کاربر



angeldrop
دوشنبه 29 دی 1393, 04:00 صبح
سلام دوستان عزیز برنامه نویس
من اکشن و ویو login رو ساختم و اینکه کاربر به راحتی register میشه از طریق ارسال ایمیل اما وقتی که میخواد لاگین بشه authenticate نمیشه !
breakpoint هم گذاشتم ریز به ریز جاهاشو چک کردم !!
این اکشن login
[AllowAnonymous]
public ActionResult Login(string ReturnUrl)
{

return View();
}
//
// POST: /Account/Login

[HttpPost]
public ActionResult Login(LoginViewModel login, string ReturnUrl="")
{
var user = db.RegisterInfoes.FirstOrDefault(u => u.Email == login.Email && u.Password == login.Password);
if (user != null)
{
if (user.IsActive)
{
FormsAuthentication.SetAuthCookie(login.Email, login.RememberMe);
if (ReturnUrl !="")
{
return Redirect(ReturnUrl);
}
else
{
return Redirect("/");
}
}
else
{
ModelState.AddModelError("Email", "حساب کاربری فوق فعال نشده است");
return View(login);

}
}

else
{
ModelState.AddModelError("Email", "کاربری یا مقادیر فوق یافت نشد ");
return View(login);
}

}
اینم partial view
_LoginPartial

<div class="thumbnail">
@if (User.Identity.IsAuthenticated)
{
<div class="well well-sm text-center">
@User.Identity.Name خوش آمدید
</div>
<p>
<a href="/Account/LogOff">خروج از سایت</a>
</p>
}
else
{
<div class="well well-sm text-center">
کاربر مهمان خوش آمدید
</div>
<p>
<a href="/Account/Login">ورود به سایت</a>
</p>
<p>
<a href="/Account/Register">ثبت نام</a>
</p>
}
</div>
ذر اصل باید authnticate بشه و از قسمت IsAuthenticate صفحه بارگذاری بشه ولی میره روی else
ممنون میشم کمک کنید ..

itsurge
دوشنبه 29 دی 1393, 22:18 عصر
شما بررسی کنید ببینید این خط کد شما اجرا میشه یا نه
FormsAuthentication.SetAuthCookie(login.Email, login.RememberMe);

A.Eimani
سه شنبه 30 دی 1393, 23:38 عصر
چرا از مثال اصلی asp.net identity استفاده نمیکنی
sample کاملش روی github و codeproject و msdn هست

این کدی که داری اصن باهاش لاگین صورت نمیگیره که بخواد تشخیصش بده

RIG000
چهارشنبه 01 بهمن 1393, 01:17 صبح
چرا از مثال اصلی asp.net identity استفاده نمیکنی
sample کاملش روی github و codeproject و msdn هست

این کدی که داری اصن باهاش لاگین صورت نمیگیره که بخواد تشخیصش بده

شما اگه بخای بدونی باید بگم identity که محکمو استوار در موردش حرف میزنی تهش که به خاندانش برگردی میرسی به همین Authntication ... ادامشو یه سرچ بزن تو همون codeprojecto ....
این کدی که شما نوشتی کاملا هم درسته دوست عزیز و کاملا مراحل loginesh انجام میشه.
حالا
1- شما قسمت isactive رو بردار کلا if رو .....
2- فقط محتوای داخلش رو بنویس و بلوک if رو پاک کن.

FormsAuthentication.SetAuthCookie(login.Email, login.RememberMe); if (ReturnUrl !="")
{
return Redirect(ReturnUrl);
}
else
{
return Redirect("کجا؟؟؟");

}


به کجا redirect کردی؟
یه return redirect بزن به یه صفحه ای که خودش مجدد نباشه.
یعنی return View(); نباشه.
معمولا چون login رو تو accountcontroller می نویسن .در این موارد redirectمیکنن به webconfing و براش defaulturl تنظیم میکنن.
شما الان اگه کدهات رو مرتب کنی و دیتابیس بهت جواب بده اوکی رو . مشکلت این هست که تو redirect ای که میزنی بای بری مثلا صفحه Home/Index رو بهش بدی.