سلام.
در MVC و با استفاده از identity 2، چطور میشه موقعی که کاربر لوگین میشه یه سری اطلاعات اضافه از دیتابیش گرفت و جایی ذخیره کرد که بدون نیاز به اتصال به دیتابیس ازش استفاده کرد. مثلا یه فیلد جدید به نام FullName که خودمون اضافی کردیم رو بیارید و بتونیم اینطوری استفاده کنیم:
همونطور که برای گرفتن ID یوز لوگین شده از
User.Identity.GetUserId()
استفاده میکنیم ، بتونیم از کدی مشابه زیر برای گرفتن اون فیلد موردنظر استفاده کنیم(بدون اتصال به دیتابیس):
User.Identity.GetFullName()
تشکر
میتونید خودتون چنین متدی بسازید
یک کلاس بسازی و متد را بهش اضافه کنید و وقتی صدا میزنید نام شخص را واکشی کنید و برگردانید
نمیخوام هربار از دیتابیس بخونه. میخوام همون بار اول که لوگین میکنه ذخیره بشه. و میخوام از identity استفاده کنم.
در Session کاربر قرار دهید
میخوام توی خود identity ذخیره بشه که مدیریتش با خودش باشه. من نخوام سشن و کوکی رو ذخیره کنم. جایی دیدم که همچین کلاسی نوشته بود:
public class AppUserManager : UserManager<UserDatabaseLogin, int> { public AppUserManager(IUserStore<UserDatabaseLogin, int> store) : base(store) { } public static AppUserManager Create(IdentityFactoryOptions<AppUserManager> options, IOwinContext context) { AppUserManager manager = new AppUserManager(new UserStore()); manager.PasswordValidator = new PasswordValidator { RequireDigit = false, RequiredLength = 4, }; return manager; } }
که توی کلاس UserDatabaseLogin ان اطلاعات اضافی بود.
ولی دیگه ندیدم چیکار کرده بود یا کلا قضیش چی بود!
اینطوری میخوام
مگه میشه دوست من ؟
باید شما کد بنویسید ، هنوز علم اونقدر پیشرفت نکرده
اگر ستونی یا فیلدی اضافه کنید خودتون باید کدهای مدیریتش رو به Identity اضافه کنید
خوب من هم میگم میخوام خودم اضافه کنم.ولی خوب شما دارید میگید از سشن استفاده کنم!! سشن که ربطی به identity نداره.
منظور من اینه که کد خوندنش موقع لوگین و اضافه کردنش به identity رو بنویسم.
شما ابتدا راجع به طرز کار و معماری Identity تحقیق و مطالعه کنید بعد متوجه میشید چگونه کنترلش کنید
این تکنولوژی از ورژن 2 کاملا بر پایه OWIN ساخته شده
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)