مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

تاپیک مورد نظر بسته شده است

کاربر سایت

ali

عضویت از 1392/03/25

عدم شناسایی کاربر للاگین شده

  • شنبه 15 مهر 1396
  • 17:40
تشکر میکنم

با سلام

لطفا راهنمایی کنید که به چه علت کاربری که لاگین کرده بعد از رفتن به صفحه ادمین به عنوان کاربر لاگین کرده شناخته نمی شه. اطلاعات مدیریت کاربران به صورت زیره :

1- استفاده از Role Provider

2- vs 2017

در واقع بعد از لاگین عبارت User.Identity.name مقدار خالی بر می گردونه

با تشکر

پاسخ های این پرسش

تعداد پاسخ ها : 12 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 15 مهر 1396
  • 17:55

کد لاگین را قرار دهید

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

کاربر سایت

ali

عضویت از 1392/03/25

  • شنبه 15 مهر 1396
  • 18:04

منظورم از RoleProvider همون Cutome Role PRovider هستش 

کاربر به درستی می تونه لاگین کنه ولی بعداز لاگین با عبارت زیر نمی شه کاربر لاگین کرده رو پیدا کرد :

var ucode =User.Identity.Name;
int LoggedUserId = db.Users.Where(w => w.UserCode == ucode).FirstOrDefault().UserId;

در اینجا اعلام می کنه که نام کاربر خالی هستش

در حالی همه این کد ها در 2015 کار می کردن

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 15 مهر 1396
  • 18:07

کد قسمتی که لاگین میکنید را قرار دهید

کاربر سایت

ali

عضویت از 1392/03/25

  • شنبه 15 مهر 1396
  • 18:31
 
public ActionResult Login(LoginViewModel login)
{
try
{
if(this.IsCaptchaValid("حروف به درستی وارد نشده اند"))
{
if(ModelState.IsValid)
{
var pass = FormsAuthentication.HashPasswordForStoringInConfigFile(login.UserPassword, "MD5");
var uc = _db.Users.Where(w => w.UserCode == login.UserName).FirstOrDefault();
var up = _db.Users.Where(w => w.UserPassword == pass).FirstOrDefault();
var user = _db.Users.Where(w => w.UserCode == login.UserName && w.UserPassword == pass).FirstOrDefault();
if(user!=null)
{
if(user.IsActive==true)
{
if(login.RememberMe==true)
{
FormsAuthentication.SetAuthCookie(login.UserName, login.RememberMe);
return RedirectToAction("Index", "AHome",new {area="LoginedUser" });
}
HttpCookie UserFN = new HttpCookie("UserFN");
UserFN.Value = user.FullName;
this.ControllerContext.HttpContext.Response.Cookies.Add(UserFN);
return RedirectToAction("Index", "AHome", new { area = "LoginedUser" });
}
else
{
ModelState.AddModelError("UserPassword", "نام کاربری وارد شده فعال نمی باشد !");
}
}
else
{
ModelState.AddModelError("UserPassword", "نام کاربری یا رمز عبور اشتباه است");
}
}
}
}
catch(Exception ex)
{
string mes = ex.Message;
}
return View();
}

کاربر سایت

ali

عضویت از 1392/03/25

  • شنبه 15 مهر 1396
  • 18:35

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 15 مهر 1396
  • 18:40

تنظیمات وب کانفیگ را انجام دادید

گذاشتید روی Forms ؟

کاربر سایت

ali

عضویت از 1392/03/25

  • شنبه 15 مهر 1396
  • 18:43

کدهای بالای لاگین رو به درستی انجام میدن ولی هنگامی که در قسسمت ادمین می خوام کاربر لاگین کرده رو شناسایی کنم و اسمش رو نشون بدم با خطای مواجه میشم :

var ucode =User.Identity.Name;
int LoggedUserId = db.Users.Where(w => w.UserCode == ucode).FirstOrDefault().UserId;

اینجا Identity.name خالی هستش

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 15 مهر 1396
  • 18:48

اصلا منطقی نیست

تا حالا این مشکل رو نداشتم

کاربر سایت

ali

عضویت از 1392/03/25

  • شنبه 15 مهر 1396
  • 19:02

این هم تنظیمات webConfig هستش

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 15 مهر 1396
  • 19:04

قسمت cacheRolesInCokkie را حذف کنید

کاربر سایت

ali

عضویت از 1392/03/25

  • شنبه 15 مهر 1396
  • 19:14

 متاسفانه فرقی نکرد

کاربر سایت

ali

عضویت از 1392/03/25

  • یکشنبه 16 مهر 1396
  • 09:24

اشکال اینجا بود که اصلا عملیات authorize در هنگام لاگین کردن انجام نمی شد و اون هم به این علت هستش که در کدهای لاگین شرط زیر گذاشته :

if(login.RememberMe==true)
{
FormsAuthentication.SetAuthCookie(login.UserName, login.RememberMe);
return RedirectToAction("Index", "AHome",new {area="LoginedUser" });
}
در واقع هنگامی که کاربر تیک مرا به خاطر بسپار رو می زد همه چی درست کار می کرد ولی در غیز اون صورت نه، که اصلا به این شرط نیازی نیست.
کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

تاپیک مورد نظر بسته شده و امکان درج پاسخ وجود ندارد

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

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)