PDA

View Full Version : سوال: اخرین باری که کاربر لوگین کرده



alia.n
یک شنبه 22 مرداد 1391, 16:45 عصر
سلام دوستان من با Membership کار میکنم حالا می خوام آخرین باری که کاربر لوگین کرده را توی یک لیبل نشان بدم میشه راهنماییم کنید ممنون.
یه سوال دیگه هم داشتم اون هم اینه که وقتی کاربر لوگین کرده و میخواد خارج بشه می خواستم یه پیام برای اطمینان از خروج بده در ضمن من از login status استفاده می کنم

h_r_sh
یک شنبه 22 مرداد 1391, 21:19 عصر
برای مورد اول:

MembershipUser user = Membership.GetUser();
string s =user.LastLoginDate.ToString();

alia.n
چهارشنبه 25 مرداد 1391, 16:58 عصر
برای مورد اول:

MembershipUser user = Membership.GetUser();
string s =user.LastLoginDate.ToString();

سلام دوست عزیز من این کار را انجام دادم اما اگر 5 دقیقه پیش لوگین کرده باشم و الان دوباره لوگین کنم ساعت اخرین لوگین ، 5 دقیقه پیش نیست بلکه همین الان رو نشون میده مشکل کار من کجاست؟

h_r_sh
چهارشنبه 25 مرداد 1391, 20:48 عصر
سلام دوست عزیز من این کار را انجام دادم اما اگر 5 دقیقه پیش لوگین کرده باشم و الان دوباره لوگین کنم ساعت اخرین لوگین ، 5 دقیقه پیش نیست بلکه همین الان رو نشون میده مشکل کار من کجاست؟

اساسا شما نباید اجازه بدی کاربری که login کرده، بتونه دوباره login کنه. فرض کنید هکر یا در بهترین حالت شخص مزاحم بتواند بینهایت دفعه login کند. نه به لحاظ امنیتی و نه به لحاظ کارآیی، این کار درست نیست.

dorparasti
پنج شنبه 26 مرداد 1391, 01:19 صبح
با هر بار لاگین شدن شما مقدار فیلد LastLoginDate در جدول aspnet_membership به روز رسانی میشه به زمان جاری .
برای اینکه بتونید تاریخ لاگین قبلی کاربر رو داشته باشید باید در قالب یک جدول جدا اینکارو انجام بدید . یعنی با هر لاگین یک رکورد که نام کاربر و تاریخ لاگین رو داره ثبت کنید و با خروج اون هم دوباره یک رکورد جدید . و بعد برای گرفتن تاریخ لاگین قبلی از query شبیه زیر استفاده کنید :


Select top 1 loginDate from LoginTable where userName=@UserName and LoginDate<@CurrentLoginDate order by LoginDate desc;

که userName نام کاربر و CurrentLoginDate تاریخ لاگین جدید کاربره .

alia.n
پنج شنبه 26 مرداد 1391, 23:00 عصر
اساسا شما نباید اجازه بدی کاربری که login کرده، بتونه دوباره login کنه. فرض کنید هکر یا در بهترین حالت شخص مزاحم بتواند بینهایت دفعه login کند. نه به لحاظ امنیتی و نه به لحاظ کارآیی، این کار درست نیست.

سلام دوست من من منظورم اینه که کاربر وارد شده به محض ورود تاریخ وساعت همان لحظه ورود رو نشون میده حتی اگر خارج بشه و دوباره وارد بشه در کل یعنی اینکه در هنگام ورود هر کاربر ، اخرین دفعه ورود را همان لحظه ورود در نظر می گیرد.

alia.n
پنج شنبه 26 مرداد 1391, 23:03 عصر
با هر بار لاگین شدن شما مقدار فیلد LastLoginDate در جدول aspnet_membership به روز رسانی میشه به زمان جاری .
برای اینکه بتونید تاریخ لاگین قبلی کاربر رو داشته باشید باید در قالب یک جدول جدا اینکارو انجام بدید . یعنی با هر لاگین یک رکورد که نام کاربر و تاریخ لاگین رو داره ثبت کنید و با خروج اون هم دوباره یک رکورد جدید . و بعد برای گرفتن تاریخ لاگین قبلی از query شبیه زیر استفاده کنید :


Select top 1 loginDate from LoginTable where userName=@UserName and LoginDate<@CurrentLoginDate order by LoginDate desc;

که userName نام کاربر و CurrentLoginDate تاریخ لاگین جدید کاربره .

دوست من اگه بخواد این کارو بکنیم پس این تابع در ممبرشیپ چکارست LastLoginDate

dorparasti
جمعه 27 مرداد 1391, 00:04 صبح
این فیلد برای کسی است که ناظر بر کاربران است مثل مدیر که تاریخ آخرین ورود کاربران رو داشته باشه . اما چیزی که شما می خواید لاگین قبل از این لاگین آخری است . که توی membership ذخیره نمیشه .