تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 9 از 9

نام تاپيک: طراحی بخش تصدیق هویت کاربران با Identity 2.0

  1. #1
    اگه نباشه جاش خالی می مونه ali_i3's Avatar
    تاريخ عضويت
    Mar 2013
    پست ها
    252

    14 طراحی بخش تصدیق هویت کاربران با 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 اطلاعات و دانش نسبی دارم.



    اگه راهنمایی کنید سپاسگذارتون میشم.
    Last edited by ali_i3; 10-05-2017 at 10:45.

  2. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    ... یا اگه پایگاه داده SQL هم باشه انجام این طراحی ممکن ...
    واقعا منظورتان را متوجه نشدم.
    اگر منظورتان از SQL زبان SQL دیتابیس ها است؟ EF با زبان SQL با دیتابیس ارتباط برقرار میکند.
    اگر منظورتان از SQL دیتابیس SQLServer مایکروسافت است؟ که نیاز به گفتن ندارد که EF محصول مایکروسافت است پس ... !

    زمانی که از Identuty استفاده کنیم چطوری میشه بین اون و جدول Users در پایگاه داده ارتباط برقرار کرد ؟
    فرق خاصی ندارد.
    Relation را میتوانید در سطح دیتابیس بین دو جدول برقرار کنید...
    اگر مایل بودید میتوانید با تگ های مربوطه عادی Code First مانند ForeignKeyAttribute و InversePropertyAttribute مفهوم کلید خارجی را در برنامه هم استفاده کنید.

  3. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  4. #3
    اگه نباشه جاش خالی می مونه ali_i3's Avatar
    تاريخ عضويت
    Mar 2013
    پست ها
    252

    14

    سلام

    واقعا منظورتان را متوجه نشدم.
    اگر منظورتان از 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 اعمال میشه یا باید دستور خاصی رو براش نشوت ؟


    ممنون که همیشه وقت میگذارید و سوالت رو جواب میدید - واقعا باارزش ترین عضو فروم هستید.





    Last edited by ali_i3; 12-05-2017 at 09:44.

  5. #4
    اگه نباشه جاش خالی می مونه ali_i3's Avatar
    تاريخ عضويت
    Mar 2013
    پست ها
    252

    پيش فرض

    چطوری میشه دستور مثل تغییر پسورد رو برای ایمیل بونیسیم که کاربر بتونه ایمیل خودش رو تغییر بده ؟




    و کلا چطوری میشه این طور دستوراتی رو روی جدول کاربران نوشت و یا ریپوزیتوری ها ی دلخواه رو روی جداول Identity نوشت ؟
    اگه این مورد مهم رو راهنمایی کنید خیلی خیلی ممنونتون میشم.


  6. #5
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    منظور از 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 را شما میتوانید روزانه نسخه جدیدش را دانلود کنید.

    شب خوش.

  7. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  8. #6
    اگه نباشه جاش خالی می مونه ali_i3's Avatar
    تاريخ عضويت
    Mar 2013
    پست ها
    252

    پيش فرض

    همانطور که در اول گفتم، میتوانید تغییرات خود را در دیتابیس اعمال کنید.
    حتی میتوانید نام فیلدهای پیش فرض اصلی را هم عوض کنید.
    ولی باید Entity موجود در Code First تان را هم مطابق همان بروز کنید.
    طوری که دیتابیس و Entity با هم سازگار باشد.
    البته اگر بخواهید هم میتوانید کل تغییرات را در سمت سی شارپ بدهید تا دیتابیس خودکار تولید شود...

    ضمن تشکر از شما بخاطر صبر و حوسله ای که بخرج میدید و جواب میدید




    یه سوال دیگه : کنکشن اتصال Identity رو به پایگاه داده خارجی خودم در SQL اتصال دادم(حدود 20 تا جدول برای پروژه جاریم در این DataBase دارم) و جداول Identity هم به پایگاه داده ام اضافه شدند - ولی مشکلی که الان هست اینه که با هر تغییر در جداول Identity (مثل کم و زیاد کردن فیلد ها و ستون ها ) (منظورم تغییر در کدهای CodeFirst است ) پایگاه داده اصلی کلا پاک میشه و دوباره ایجاد میشه
    و این باعث میشه بعد از هر تغییر در CodeFirst , جداول اصلی پایگاه داده حذف بشن و از دیتابیس فقط جداول خود Identity میمونه.
    Last edited by ali_i3; 15-05-2017 at 10:27.

  9. #7
    اگه نباشه جاش خالی می مونه ali_i3's Avatar
    تاريخ عضويت
    Mar 2013
    پست ها
    252

    پيش فرض

    وقتی جداول Identity را تغییر میدیم برای اعمال تغییرات به پایگاه داده خارجیش چه دستوراتی را باید داخل وارد کنیم ؟

    با اول با Enable-Migrations , Update-Database اعمال ولی برای بار ها بعدی میگه که Migrations از قبل موجوده و تغییر صورت نمیگیره !


    دستورات دقیق انجام این کار چین ؟



  10. #8
    اگه نباشه جاش خالی می مونه ali_i3's Avatar
    تاريخ عضويت
    Mar 2013
    پست ها
    252

    پيش فرض

    این مورد رو ببینید ؟

    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    بنظرتون میشه از این بعنوان بخش تصدیق هویت در پروژه تحت وب Mvc 5 استفاده کرد ؟


  11. #9
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    ... این باعث میشه بعد از هر تغییر در CodeFirst , جداول اصلی پایگاه داده حذف بشن و از دیتابیس فقط جداول خود Identity میمونه ...
    کلا مکانیزم بروزرسانی دیتابیس به نام Migrations شناخته میشود.
    شما میتوانید این مکانیزم را غیر فعال کنید.
    اگر پوشه و کلاس هایی با نام Migrations دارید حذف کنید... وراثت های DbMigration و DbMigrationsConfiguration ...
    و
    دستور زیر را به سازنده DbContext هایتان اضافه کنید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    وقتی جداول Identity را تغییر میدیم برای اعمال تغییرات به پایگاه داده خارجیش چه دستوراتی را باید داخل وارد کنیم؟ ... دستورات دقیق انجام این کار چین ؟
    تاریخچه تغییرات در جدول MigrationHistory درون دیتابیس به همراه یک کلید ContextKey ذخیره میشود.

    برای Migration باید وراثتی از DbMigrationsConfiguration بسازید.
    میتوانید AutomaticMigrationsEnabled را فعال و ContextKey را پر کنید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    با فرمانی شبیه این و نمونه سازی (new DbContext) میتوانید دیتابیس را بروز کنید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    الان باید با تغییرات Entity

    البته فرمان هایی شبیه Enable-Migrations هم میتوانند الگوهای اولیه ای برایتان تولید کنند.

    ...برای بار ها بعدی میگه که Migrations از قبل موجوده و تغییر صورت نمیگیره
    زیاد از Migration استفاده نکردم ولی اگر کلید ContextKey را صحیح وارد نکنید، بعید نیست از این مشکلات رخ دهد...

    این مورد رو ببینید ؟
    درکل دانلود و مشاهده کدهای نمونه و... به شرطی که درک شود، بدنیست.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •