مشاهده نسخه کامل
: طراحی بخش تصدیق هویت کاربران با Identity 2.0
با سلام
برای پیداه سازی بخش تصدیق هویت کاربران در Mvc 5.2.3 تکنولوژی Identity 2.0 چند تا سوال داشتم ؟
برای استفاده از این قابلیت باید کل بخش پایگاه داده رو با Entity FrameWork 6 پیداه سازیم کنیم یا اگه پایگاه داده SQL هم باشه انجام این طراحی ممکن هست ؟
زمانی که از Identuty استفاده کنیم چطوری میشه بین اون و جدول Users در پایگاه داده ارتباط برقرار کرد ؟(این سوال رو به این خاطر پرسیدم که Identity خودش رو بصورت EF Code First پیداه سازی میکنه .)
در حال حاظر بنده پایگاه داده رو بصورت SQL طراحی و استفاده کردم و میخوام بخش تصدیق هویت برای کاربران را بصورت Identity 2.0 پیدا کنم.
و در مورد طراحی پایگاه داده بصورت Code First اطلاعات و دانش نسبی دارم.
اگه راهنمایی کنید سپاسگذارتون میشم.
سلام
... یا اگه پایگاه داده SQL هم باشه انجام این طراحی ممکن ...
واقعا منظورتان را متوجه نشدم.
اگر منظورتان از SQL زبان SQL دیتابیس ها است؟ EF با زبان SQL با دیتابیس ارتباط برقرار میکند.
اگر منظورتان از SQL دیتابیس SQLServer مایکروسافت است؟ که نیاز به گفتن ندارد که EF محصول مایکروسافت است پس ... !
زمانی که از Identuty استفاده کنیم چطوری میشه بین اون و جدول Users در پایگاه داده ارتباط برقرار کرد ؟
فرق خاصی ندارد.
Relation را میتوانید در سطح دیتابیس بین دو جدول برقرار کنید...
اگر مایل بودید میتوانید با تگ های مربوطه عادی Code First مانند ForeignKeyAttribute و InversePropertyAttribute مفهوم کلید خارجی را در برنامه هم استفاده کنید.
سلام
واقعا منظورتان را متوجه نشدم.
اگر منظورتان از SQL زبان SQL دیتابیس ها است؟ EF با زبان SQL با دیتابیس ارتباط برقرار میکند.
اگر منظورتان از SQL دیتابیس SQLServer مایکروسافت است؟ که نیاز به گفتن ندارد که EF محصول مایکروسافت است پس ... !
فرق خاصی ندارد.
Relation را میتوانید در سطح دیتابیس بین دو جدول برقرار کنید...
اگر مایل بودید میتوانید با تگ های مربوطه عادی Code First مانند ForeignKeyAttribute و InversePropertyAttribute مفهوم کلید خارجی را در برنامه هم استفاده کنید.
ممنون از پاسختون ,
منظور از SQL طراحی پایگاه داده بصورت Database First بود .
الان یه پروژه در حال انجام دارم (با زبان Mvc5.2.3) که طراحی پایگاه داده رو هم همونطور که گفتم بصورت Database First انجام دادم ,
لینک اتصال رو به فایل اصلی پایگاه دادم دادم و جداول به پایگاه داده اصلی چروزم اضافه شد (+ روابط بینشون هم برقراره).
دستور ایجاد Template Mvc خود مایکروسافت برای جدیدترین ورژن Identity 2.0 چیه ؟
این دستور بروز ترین ورژن رو نصب میکنه ؟
Install-Package Microsoft.AspNet.Identity.Samples -Pre
یا دستور بهری رو میشناسید ؟
سوال دوم : حالا اگه این جداول (مربوط به Identity 2.0 که به پایگاه دادم اضافه شدند)رو بخوام گسترش بدم و مثلا ستون های جدول User رو بیشتر کنم .اگه تغییری با SQL Studio Management انجام بدم تغیرات به کد های EFCF اعمال میشه یا باید دستور خاصی رو براش نشوت ؟
ممنون که همیشه وقت میگذارید و سوالت رو جواب میدید - واقعا باارزش ترین عضو فروم هستید.
چطوری میشه دستور مثل تغییر پسورد رو برای ایمیل بونیسیم که کاربر بتونه ایمیل خودش رو تغییر بده ؟
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
و کلا چطوری میشه این طور دستوراتی رو روی جدول کاربران نوشت و یا ریپوزیتوری ها ی دلخواه رو روی جداول Identity نوشت ؟
اگه این مورد مهم رو راهنمایی کنید خیلی خیلی ممنونتون میشم.
سلام
منظور از SQL طراحی پایگاه داده بصورت Database First بود
معنی نام را کنار بگذارید.
Code First کاملا با Database First سازگار است، تاکید میکنم، کاملا !
(Code First به نوعی متضاد Model First است.)
حقیقتش را بخواهید خودم تا حالا در هیچ پروژه ای اجازه ندادم Code First دیتابیسم را بسازد.
یعنی دیتابیس را جداگانه به سبک Database First در برنامه SSMS یا SD و... می سازم
و
بخش ORM برنامه را به سبک Code First درون سی شارپ مجدد می سازم!
میدانم، شاید به نظر برسد بدویت(!) و دوباره کاری است ولی من اعتقاد دارم کیفیت کارم بهتر میشود.
وبرای ساخت یا بدتر از آن تغییر (ساختار schema) دیتابیس موجود به خودم بیشتر اعتماد دارم تا یک کد!
(برای دیتابیس های "پر" اجازه تغییر ساختار دیتابیس با Code First خطرناک هم است)
در کل شما نیازی ندارید ساخت دیتابیس را به Code First بسپارید.
دستور ایجاد Template Mvc خود مایکروسافت برای جدیدترین ورژن Identity 2.0 چیه ؟ ... یا دستور بهری رو میشناسید ؟
در زمان New Project گزینه ای در سمت راست پنجره ای که باز میشود با نام Authentication وجود دارد که می تواند کلاس ها وکدهای اولیه Identity را برایتان ایجاد کند.
حالا اگه این جداول رو بخوام گسترش بدم و مثلا ستون های جدول User رو بیشتر کنم...
همانطور که در اول گفتم، میتوانید تغییرات خود را در دیتابیس اعمال کنید.
حتی میتوانید نام فیلدهای پیش فرض اصلی را هم عوض کنید.
ولی باید Entity موجود در Code First تان را هم مطابق همان بروز کنید.
طوری که دیتابیس و Entity با هم سازگار باشد.
البته اگر بخواهید هم میتوانید کل تغییرات را در سمت سی شارپ بدهید تا دیتابیس خودکار تولید شود...
چطوری میشه دستور مثل تغییر پسورد رو برای ایمیل بونیسیم که کاربر بتونه ایمیل خودش رو تغییر بده ؟
اول بدانید که بسته به ایده و روش امنیتی تان میتوانید جداول Identity را هم مستقیم ویرایش کنید
ولی برای تغییر ایمیل میتوانید حداقل روند حدودی زیر را طی کنید...
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کمی شبیه منطق "فراموشی گذرواژه" است.
چطوری میشه این طور دستوراتی رو روی جدول کاربران نوشت و یا ریپوزیتوری ها ی دلخواه رو روی جداول Identity نوشت
برای بروز رسانی این جداول میتوانید از همان UserManager استفاده کنید.
اگر هم میخواهید مستقیم این جداول را read/write کنید که از DbContext ای وجود دارد استفاده کنید.
در کدهای نمونه یک کلاس ApplicationDbContext ایجاد میشود که دقیقا یک DbContext عادی Code First است.
میتوانید هر کاری مستقیم با جداول فوق انجام دهید!
امیدوارم کمکی کرده باشم.
ضمنا در کل که اطلاع دارید اغلب نسل آینده اینها دارد به سمت ASP.Net Core پیش میرود
دقیقا به همین دلیل است که دو سال است AspNet.Identity بروز نشده ولی AspNetCore.Identity را شما میتوانید روزانه نسخه جدیدش را دانلود کنید.
شب خوش.
همانطور که در اول گفتم، میتوانید تغییرات خود را در دیتابیس اعمال کنید.
حتی میتوانید نام فیلدهای پیش فرض اصلی را هم عوض کنید.
ولی باید Entity موجود در Code First تان را هم مطابق همان بروز کنید.
طوری که دیتابیس و Entity با هم سازگار باشد.
البته اگر بخواهید هم میتوانید کل تغییرات را در سمت سی شارپ بدهید تا دیتابیس خودکار تولید شود...
ضمن تشکر از شما بخاطر صبر و حوسله ای که بخرج میدید و جواب میدید
:n16:
یه سوال دیگه : کنکشن اتصال Identity رو به پایگاه داده خارجی خودم در SQL اتصال دادم(حدود 20 تا جدول برای پروژه جاریم در این DataBase دارم) و جداول Identity هم به پایگاه داده ام اضافه شدند - ولی مشکلی که الان هست اینه که با هر تغییر در جداول Identity (مثل کم و زیاد کردن فیلد ها و ستون ها ) (منظورم تغییر در کدهای CodeFirst است ) پایگاه داده اصلی کلا پاک میشه و دوباره ایجاد میشه
و این باعث میشه بعد از هر تغییر در CodeFirst , جداول اصلی پایگاه داده حذف بشن و از دیتابیس فقط جداول خود Identity میمونه.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
وقتی جداول Identity را تغییر میدیم برای اعمال تغییرات به پایگاه داده خارجیش چه دستوراتی را باید داخل وارد کنیم ؟
با اول با Enable-Migrations , Update-Database اعمال ولی برای بار ها بعدی میگه که Migrations از قبل موجوده و تغییر صورت نمیگیره !
دستورات دقیق انجام این کار چین ؟
این مورد رو ببینید ؟
لینک منبع یک ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
لینک منبع دوم ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
بنظرتون میشه از این بعنوان بخش تصدیق هویت در پروژه تحت وب Mvc 5 استفاده کرد ؟
سلام
... این باعث میشه بعد از هر تغییر در CodeFirst , جداول اصلی پایگاه داده حذف بشن و از دیتابیس فقط جداول خود Identity میمونه ...
کلا مکانیزم بروزرسانی دیتابیس به نام Migrations شناخته میشود.
شما میتوانید این مکانیزم را غیر فعال کنید.
اگر پوشه و کلاس هایی با نام Migrations دارید حذف کنید... وراثت های DbMigration و DbMigrationsConfiguration ...
و
دستور زیر را به سازنده DbContext هایتان اضافه کنید.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
وقتی جداول Identity را تغییر میدیم برای اعمال تغییرات به پایگاه داده خارجیش چه دستوراتی را باید داخل وارد کنیم؟ ... دستورات دقیق انجام این کار چین ؟
تاریخچه تغییرات در جدول MigrationHistory درون دیتابیس به همراه یک کلید ContextKey ذخیره میشود.
برای Migration باید وراثتی از DbMigrationsConfiguration بسازید.
میتوانید AutomaticMigrationsEnabled را فعال و ContextKey را پر کنید.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با فرمانی شبیه این و نمونه سازی (new DbContext) میتوانید دیتابیس را بروز کنید.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
الان باید با تغییرات Entity
البته فرمان هایی شبیه Enable-Migrations هم میتوانند الگوهای اولیه ای برایتان تولید کنند.
...برای بار ها بعدی میگه که Migrations از قبل موجوده و تغییر صورت نمیگیره
زیاد از Migration استفاده نکردم ولی اگر کلید ContextKey را صحیح وارد نکنید، بعید نیست از این مشکلات رخ دهد...
این مورد رو ببینید ؟
درکل دانلود و مشاهده کدهای نمونه و... به شرطی که درک شود، بدنیست.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.