ورود

View Full Version : سوال: دسترسی های یک کاربر چگونه باید در هنگام ورود ذخیره شود؟



masoodinfo
سه شنبه 11 آذر 1393, 08:50 صبح
سلام خدمت دوستان !
دوستان فکر می کنم کلیه دسترسی های یک کاربر در هنگام ورود کاربر باید از بانک خوانده شود و در جایی ذخیره شود!بهترین محل برای ذخیره سازی این مجوز ها کجاست ؟ متغییرهای سراسری؟سشن؟...؟

r4hgozar
سه شنبه 11 آذر 1393, 09:57 صبح
سلام.
فکر کنم شما هدفتون این باشه که می خواین به کاربر سطح دسترسی ایجاد کنین.که هر کاربر کجا بره و نره.
http://www.dotnettips.info/post/1166/%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C-%D8%B3%D8%B7%D9%88%D8%AD-%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%A7%D9%86-%D8%AF%D8%B1-mvc

masoodinfo
شنبه 15 آذر 1393, 15:09 عصر
سلام دوست عزیز! ممنون از پاسختون !
بنده یک سری دسترسی های درختی دارم تو برنامم مثه رئیس و کارمند و اینا !از جدوال خودم استفاده می کنم!
دسترسی های یک کاربر رو در هنگام ورود در بانک می خونم و درکلاسی مقدار دهی می کنم!
سوال اینه که من این کلاس رو چگونه در همه صفحات داشته باشم و بتونم ازش بخونم!؟
متغییر سراسری ؟ سشن !؟یا...؟
من با سشن امتحان کردم !ولی زود پاک میشه ! timeout رو هم 60 میدم ولی 1 ساعت نمیشه!
کوکی امنیت داره ؟میشه کوکی رو کد کرد چیزی مثه لاگین !؟
ممنون میشم راهنمایی کنید! من مبتدی هستم!

r4hgozar
شنبه 15 آذر 1393, 15:19 عصر
سلام.
در asp.net از session برای این کار استفاده می شد.
اما در mvc از یک فیلتر برای این کار استفاده می شه. که مفهوم membership رو میده.
البته در آینده Identity ها اومدن از 2013 اما راه حل ساده شما اینه که مثلا یه مثال کوچولو می زنم. شما درکنترل باید

var blUser = new UserRepository();
if (blUser.Exist(username, password))
{
FormsAuthentication.SetAuthCookie(username, rememberme);


return RedirectToAction("Index");
}
else
{
ViewBag.Message = "نام کاربری یا پسورد اشتباه است";
}



و برالی خروج هم



[AllowAnonymous]
public ActionResult LogOut()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index");
}




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

@User.Identity.Name



این مختصر بود. امیدوارم مفید باشه برات

masoodinfo
یک شنبه 16 آذر 1393, 11:16 صبح
سلام و ممنون از پاسختون!!
دوست عزیز بنده هم لاگین رو انجام میدم!
FormsAuthentication.SetAuthCookie(username, rememberme);

اما مشکل من این نیست !مشکل من اینه که می خوام یک متغییر رو در همه جای برنامه بعد از مقدار دهی بتونم ازش استفاده کنم !!!!!


ممنون:لبخندساده:

r4hgozar
یک شنبه 16 آذر 1393, 12:32 عصر
من نمی تونم متوجه شم منظورتون رو.
اما اینجور که من متوجه شدم باید از tempdata استفاده کنین.
تفاوتش با viewbag , viewdata اینه که اینا با تغییر کنترل ها و view ها مقدارشون خالی میشه. اما tempdata مقدارش رو نگه میداره.
امیدوارم منظورت همین باشه