نمایش نتایج 1 تا 27 از 27

نام تاپیک: اضافه کردن Identity 2.0

  1. #1
    کاربر دائمی آواتار alireza_rashvand
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    قزوین
    پست
    331

    Lightbulb اضافه کردن Identity 2.0

    سلام می دونم چند جا در این سایت بحث شده ولی واقعا دقیق گفته نشد و هر چی خوندم بیشتر گیج شدم. شاید به این خاطر است که دوستان از وسط یادگیری مطالب را ارائه میدهند موضوع خود را مطرح می کنند. قصد دارم در این تاپیک از صفر موضوع را بررسی کنیم.

    قسمت لاگین برنامه رو ننوشتم قسمت های مختلف رو نوشتم و امروز سعی کردم Identity رو اضافه کنم .
    یه اشتباه کردم کپی از پروژه نگرفتم (دوستانی حتما اشتباه من رو تکرار نکنید!) و بعد از
    PM> Install-Package Microsoft.AspNet.Identity.Samples -Pre
    بعضی از کلاس ها و فایل هام جایگزین شد(از دست رفت)

    چند سوال برام پیش اومد
    1- مگر Identity 1.0 هم داریم؟!
    VS2013 دارم ایا باید به 2 ابدیت کنم یا نه؟

    2- برای اضافه کردن به پروژه چگونه باید اقدام کرد.؟



    لطفا از صفر بگید که هر کس مثل من خواست این کار رو بکنه این تاپیک مشکلش رو حل کنه.
    سپاس از دوستان و اساتید.
    آخرین ویرایش به وسیله alireza_rashvand : جمعه 25 مهر 1393 در 16:52 عصر

  2. #2

    نقل قول: اضافه کردن Identity 2.0

    سلام با همین دستور باید اضافه کرد .

    بله Identity 1 هم داریم ولی 2 پیچیده تر هست و امکانات بیشتری داره .

    ویژوال استادیو من آپدیت 2 هست ولی خودش Identity 1 را اضافه میکنه و من خودم با همون دستور 2 را اضافه میکنم .

    خود من از EfCode First استفاده میکردم و Identity 2 را به پروژه اضافه کردم و میخواستم جدول Users که خود Identity میسازه را به جداول پروژه ی خودم ارتباط بدم و بینشون Relation برقرار کنم ولی هرکاری کردم خطای ناسازگاری جداول خودم با اون جدول ها را میداد و هرچقدر هم سرچ کردم و پرسیدم مشکلم حل نشد . مجبور شدم خودم احراز هویت را بنویسم .

    اگر کسی تجربه ی کار را داره لطفا راهنمایی کنه .

  3. #3

    نقل قول: اضافه کردن Identity 2.0

    این قضیه identity چیه اصلا"؟ من نفهمیدم موضوع چیه ؟!!برای چه کاری بدرد میخوره؟

  4. #4

    نقل قول: اضافه کردن Identity 2.0

    نقل قول نوشته شده توسط RIG000 مشاهده تاپیک
    این قضیه identity چیه اصلا"؟ من نفهمیدم موضوع چیه ؟!!برای چه کاری بدرد میخوره؟
    یک نگاهی به این بندازی متوجه میشی
    http://www.dotnettips.info/post/1770...A7%DB%8C%D9%87

  5. #5

    نقل قول: اضافه کردن Identity 2.0

    البته دوستان و بزرگواران این مسائل رو بهتر میدونند اما جا داره اینجا دوباره اشاره کنیم. نکته ی اول اینکه همیشه پروژه تون رو روی یه سرور مدیریت سورس بذارید، SVN یا Git و ...
    همین هفته ی قبل بود که به همراه دوستان سعی داشتیم Identity رو به پروژه اضافه کنیم(مثل آقای رشوند) و همه ی فایل ها از دست رفت، اما چون از SVN استفاده می کردیم تغییرات رو با موفقیت برگردوندیم و به مشکلی بر نخوردیم
    در ویژوال استودیو 2013 پیش فرض Identity 1 بر روی پروژه ها نصب میشه که میشه اون رو از Nuget به نسخه ی 2 ارتقا داد.
    نمیدونم این راه چقدر اصولی هست اما ما این کار رو کردیم:
    1- یه پروژه ای به اسم testIdentity ساختیم و Identity.samples رو بر روی اون پروژه نصب کردیم.
    2- فایل های مربوطه رو به پروژه ی اصلی اضافه کردیم و هر جایی که نیاز بود تغییر دادیم.
    و الان داریم از Identity استفاده می کنیم

  6. #6

    نقل قول: اضافه کردن Identity 2.0

    نقل قول نوشته شده توسط mohammadreza.najafipour مشاهده تاپیک
    البته دوستان و بزرگواران این مسائل رو بهتر میدونند اما جا داره اینجا دوباره اشاره کنیم. نکته ی اول اینکه همیشه پروژه تون رو روی یه سرور مدیریت سورس بذارید، SVN یا Git و ...
    همین هفته ی قبل بود که به همراه دوستان سعی داشتیم Identity رو به پروژه اضافه کنیم(مثل آقای رشوند) و همه ی فایل ها از دست رفت، اما چون از SVN استفاده می کردیم تغییرات رو با موفقیت برگردوندیم و به مشکلی بر نخوردیم
    در ویژوال استودیو 2013 پیش فرض Identity 1 بر روی پروژه ها نصب میشه که میشه اون رو از Nuget به نسخه ی 2 ارتقا داد.
    نمیدونم این راه چقدر اصولی هست اما ما این کار رو کردیم:
    1- یه پروژه ای به اسم testIdentity ساختیم و Identity.samples رو بر روی اون پروژه نصب کردیم.
    2- فایل های مربوطه رو به پروژه ی اصلی اضافه کردیم و هر جایی که نیاز بود تغییر دادیم.
    و الان داریم از Identity استفاده می کنیم
    پس شما که تجربه دارید لطفا ما را هم راهنمایی بفرمایید تا مشکلمون حل بشه و بتونیم ازش استفاده کنیم .

    توی این تاپیک در مورد مشکل بحث شد ولی در آخر نتیجه نگرفتم !

    https://barnamenevis.org/showthread.p...88%DA%98%D9%87

    من میخوام از جدول users خود Identity استفاده کنم و به جدول Posts از پروژه ی خودم متصل کنم تا کاربران از اونجا شناسایی بشن . ولی مشکل بوجود میاد ...

  7. #7

    نقل قول: اضافه کردن Identity 2.0

    نقل قول نوشته شده توسط HOSSEINONLINE7 مشاهده تاپیک
    پس شما که تجربه دارید لطفا ما را هم راهنمایی بفرمایید تا مشکلمون حل بشه و بتونیم ازش استفاده کنیم .

    توی این تاپیک در مورد مشکل بحث شد ولی در آخر نتیجه نگرفتم !

    https://barnamenevis.org/showthread.p...88%DA%98%D9%87

    من میخوام از جدول users خود Identity استفاده کنم و به جدول Posts از پروژه ی خودم متصل کنم تا کاربران از اونجا شناسایی بشن . ولی مشکل بوجود میاد ...
    سلام دوست عزیز.
    بابت تاخیر عذر میخوام،چند روزی هست که سرم شلوغه
    جواب رو توی تاپیک قبلی دادم:
    https://barnamenevis.org/showthread.p...=1#post2115878

    توضیح اینکه برای انجام اینکار از لینک زیر کمک گرفته بودیم:

    http://stackoverflow.com/questions/2...new-column-nam

  8. #8
    کاربر دائمی آواتار alireza_rashvand
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    قزوین
    پست
    331

    نقل قول: اضافه کردن Identity 2.0

    با تشکر از اقای نجفی پور عزیز , فکر کنم باید کار شما رو انجام بدم یک پروژه صفر همراه با نصب
    Identity
    داشته باشم و بعد از ان سورس های خودم رو به ان اضافه کنم.

  9. #9
    کاربر دائمی آواتار hp1361
    تاریخ عضویت
    دی 1384
    محل زندگی
    تهران
    پست
    750

    نقل قول: اضافه کردن Identity 2.0

    سلام

    آقای نجفی پور عزیز اگه ممکنه در خصوص نحوه استفاده از Identity 2.0 همراه IUnitOfWork هم توضیح بدید

    ممنون

  10. #10
    کاربر دائمی آواتار alireza_rashvand
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    قزوین
    پست
    331

    نقل قول: اضافه کردن Identity 2.0

    معمولا زمانی تاپیکی رو ایجاد می کنم که خودم می خواهم از صفر ان موضوع رو دنبال کنم, چون تازه کار هستم حتما تاپیک هایم به درد تازه وارد ها خواهد خورد, هم خودم یاد می گیرم هم اگر کسی بعد ها خواست تازه این بحث را شروع کنه بدردش می خوره...

    تا اینجای کار با توجه به توضیحات دوستان متوجه شدم بهترین کار اینکه یک پروژه تازه ایجاد کنم همراه با نصب Identity 2.0
    البته وقتی پروژه خالی ایجاد می کنیم همان ابتدا امکان احراز هویت رو می شه انتخاب کرد, (تا خود به خود اعمال بشه) ولی کد زیر رو هم اعمال کردم که اگر اپدیتی در کار بود خودش اعمال کنه(با توجه به توضیح دوستان)
    PM> Install-Package Microsoft.AspNet.Identity.Samples -Pre

    برای اینکه فایل های خودمان را بروی ان اصلاح کنیم :

    1- ارتباط با دیتابیس:
    اول) یک connectionString در Web.config ساختم و نامش رو گذاشتم Context
    دوم) رفتم به کلاس ApplicationDbContext کد زیر رو تغییر دادم

    public ApplicationDbContext()
    : base("Context", throwIfV1Schema: false)
    {
    }

    حالا اگه برنامه رو اجرا کنیم و یک ثبت نام انجام بدیم دیتابیس ها بر اساس نامی که به connectionString دادیم ایجاد می شه.

    Identity جداولی رو به صورت خودکار ایجاد می کنه مهترین ان AspNetUsers است که کاربران را برای ما در نظر می گیره.

    2- چگونه می شود به این جدول (AspNetUsers) فیلدی اضافه کرد؟

    راه حل را hakim22 گفته اند(لینک) و در این مقاله هم توضیح داده شده.
    خلاصه اینکه کافیه موارد مورد نیاز خودمون را به ApplicationUser اضافه کنیم تا در AspNetUsers اضافه بشه(به وسیله ارتباطش با IdentityUser ).
    مثلا:


    public class ApplicationUser : IdentityUser
    {
    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationU ser> manager)
    {
    // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
    var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
    // Add custom user claims here
    return userIdentity;
    }
    public string Address { get; set; }
    }

    کد بالا ادرس رو به جدول کاربران اضافه می کنه.
    برای اعمال شدن(و مشاهده) این تغییرات از Migration استفاده کردم.
    خلاصه استفاده از ازMigration:
    - Enable-Migrations برای فعال سازی
    - Add-Migration TUDProject (نام دلخواه)
    - Update-Database

    3- چطور می شه جدول های دیگری که داریم را به این پروژه جدید اضافه کرد

    من هنوز متوجه نشدم که چطور باید جداول دیگر را اضافه کرد, شاید سردرگمی از اینجاست که قبل از این من یک مودل می نوشتم مثلا Post بعد در کلاس Context که از DbContext ارث بری کرده بود DbSet می کردم, و می دانستم که برنامه به دنبال DbContext می گردد و حالا که ما ارث بری کردیم مودل مورد نظر ما را هم می سازد... ولی اینجا نمی دانم چه گونه است...

    دوستان اگر می دانند توضیحی در مورد قسمت 3 بدهند

    اگر موضوعی رو اشتباه گفتم لطفا بگید

  11. #11
    کاربر دائمی آواتار hp1361
    تاریخ عضویت
    دی 1384
    محل زندگی
    تهران
    پست
    750

    نقل قول: اضافه کردن Identity 2.0

    سلام

    اگر قراره از DBContext مربوط به Identity استفاده کنی(IdentityDbContext) در اینصورت همون عملیاتی که گفتی رو باید در قیمت IdentityDbContext انجام بدی. یعنی اینکه بیای بصورت DbSet<> کلاس هات رو به IdentityDbContext معرفی کنی تا IdentityDbContext هم جداول مربوط به این کلاس ها رو در بانکی به در ConnectionString معرفی کردی بسازه.

    این کد
    PM> Install-Package Microsoft.AspNet.Identity.Samples -Pre
    که گفتی استفاده میکنی تا آپدیتی اگر هست رو اعمال کنه کارش چیز دیگه ای است. قبل از اینکه نسخه Identity 2.0 بصورت رسمی ارائه این کدها که حاوی مثال هم هستند در مخزنی قرار داشتند تا علاقمندان با مطالعه اون با موضوع آشانا بشن.
    اگر از Visual Studio Update 3 استفاده کنید خودش در پروژه ایجاد شده از Identity 2.0 استفاده میکنه. ضمنا برای اطمینان از بروزبودن بخش های مختلف برنامه از کد زیر میتونید استفاده کنید

    PM> Update-Package

  12. #12

    نقل قول: اضافه کردن Identity 2.0

    نقل قول نوشته شده توسط alireza_rashvand مشاهده تاپیک
    با تشکر از اقای نجفی پور عزیز , فکر کنم باید کار شما رو انجام بدم یک پروژه صفر همراه با نصب
    Identity
    داشته باشم و بعد از ان سورس های خودم رو به ان اضافه کنم.
    خواهش می کنم. البته فکر کنم منظورم رو در جواب قبلی بد رسوندم یه پروژه ی جدا درست کنید و برای مثال اسم اون رو IdentityTest بذارید. بعدش روی اون Sampleهای Identity رو نصب کنید. حالا می تونید فایل های پروژه رو از این پروژه به پروژه ی خودتون انتقال بدید و تغییرات لازم رو انجام بدید.

  13. #13

    نقل قول: اضافه کردن Identity 2.0

    نقل قول نوشته شده توسط hp1361 مشاهده تاپیک
    سلام

    آقای نجفی پور عزیز اگه ممکنه در خصوص نحوه استفاده از Identity 2.0 همراه IUnitOfWork هم توضیح بدید

    ممنون
    متاسفانه اطلاعاتی در مورد استفاده ی Identity با IUnitOfWork ندارم ولی فکر کنم لینک های زیر مفید باشه:
    http://stackoverflow.com/questions/2...d-unit-of-work
    http://odetocode.com/blogs/scott/arc...framework.aspx

  14. #14
    کاربر دائمی آواتار alireza_rashvand
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    قزوین
    پست
    331

    نقل قول: اضافه کردن Identity 2.0

    نقل قول نوشته شده توسط hp1361 مشاهده تاپیک
    سلام

    اگر قراره از DBContext مربوط به Identity استفاده کنی(IdentityDbContext) در اینصورت همون عملیاتی که گفتی رو باید در قیمت IdentityDbContext انجام بدی. یعنی اینکه بیای بصورت DbSet<> کلاس هات رو به IdentityDbContext معرفی کنی تا IdentityDbContext هم جداول مربوط به این کلاس ها رو در بانکی به در ConnectionString معرفی کردی بسازه.

    این کد
    PM> Install-Package Microsoft.AspNet.Identity.Samples -Pre
    که گفتی استفاده میکنی تا آپدیتی اگر هست رو اعمال کنه کارش چیز دیگه ای است. قبل از اینکه نسخه Identity 2.0 بصورت رسمی ارائه این کدها که حاوی مثال هم هستند در مخزنی قرار داشتند تا علاقمندان با مطالعه اون با موضوع آشانا بشن.
    اگر از Visual Studio Update 3 استفاده کنید خودش در پروژه ایجاد شده از Identity 2.0 استفاده میکنه. ضمنا برای اطمینان از بروزبودن بخش های مختلف برنامه از کد زیر میتونید استفاده کنید

    PM> Update-Package
    سپاس حق با شماست...
    یه پروژه ی جدا درست کنید و برای مثال اسم اون رو IdentityTest بذارید. بعدش روی اون Sampleهای Identity رو نصب کنید. حالا می تونید فایل های پروژه رو از این پروژه به پروژه ی خودتون انتقال بدید و تغییرات لازم رو انجام بدید.
    به نظرم سخت باشه تمام فایل ها مورد نیاز
    Identity (بعد از نصب) را برداشت به پروژ اصلی اضافه کرد این گونه نیست؟
    فکر کنم بهترین کار اینکه از همان ابتدا
    Identity را نصب کنیم بعد شروع کنیم به نوشتن پروژه :) من شما کارمان را سخت کردیم, البته من از ابتدا از Identity ترسیدم :)
    (دیدم همش داره تغییر می کنه دست نگه داشتم) برای همین گذاشتم برای بعد که فکر کنم بهترین کار اینکه از همان ابتدا با نصب
    Identity شروع کنیم...


  15. #15

    نقل قول: اضافه کردن Identity 2.0

    نقل قول نوشته شده توسط alireza_rashvand مشاهده تاپیک
    سپاس حق با شماست...


    به نظرم سخت باشه تمام فایل ها مورد نیاز
    Identity (بعد از نصب) را برداشت به پروژ اصلی اضافه کرد این گونه نیست؟
    فکر کنم بهترین کار اینکه از همان ابتدا
    Identity را نصب کنیم بعد شروع کنیم به نوشتن پروژه :) من شما کارمان را سخت کردیم, البته من از ابتدا از Identity ترسیدم :)
    (دیدم همش داره تغییر می کنه دست نگه داشتم) برای همین گذاشتم برای بعد که فکر کنم بهترین کار اینکه از همان ابتدا با نصب
    Identity شروع کنیم...

    درست می فرمایید اما اینکار برای وقتیکه از وسط پروژه تصمیم به اضافه کردن Identity گرفتیم تصمیم خوبی بود
    با شما موافقم، از اول نصب کردن خیلی بهتره ...

  16. #16
    کاربر دائمی آواتار hp1361
    تاریخ عضویت
    دی 1384
    محل زندگی
    تهران
    پست
    750

    نقل قول: اضافه کردن Identity 2.0

    سلام مجدد

    پیشنهاد میکنم فصل های 13و 14 و 15 کتاب Pro.ASP.NET.MVC.5.Platform رو مطالعه کنید تا بخوبی از کدهایی که در فایل هایی چون Startup و identityconfig نوشته سر در بیارید.

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

    موفق باشیم

  17. #17
    کاربر دائمی آواتار alireza_rashvand
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    قزوین
    پست
    331

    نقل قول: اضافه کردن Identity 2.0

    کتاب را دانلود کردم حتما وقت کنم مطالعه خواهم کرد سپاس.

    برای ایجاد جداول دیگه, راه حلی که رفتم :
    یک مودل به نام Post ایجاد کرد
    ابتدا مثل قبل که به کاربر ادرس رو اضافه کردم Post را اضافه کردم(چون پست به کاربر در ارتباط هست وگرنه نیازی به نوشتنش در این جا نبود)

    public class ApplicationUser : IdentityUser
    {
    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationU ser> manager)
    {
    // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
    var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
    // Add custom user claims here
    return userIdentity;
    }
    public string Address { get; set; }
    public ICollection<Post> Post { set; get; }
    }

    بعد در کلاس ApplicationDbContext ست کردم (DbSet)


    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
    public ApplicationDbContext()
    : base("Context", throwIfV1Schema: false) { }

    static ApplicationDbContext()
    {
    // Set the database intializer which is run once during application start
    // This seeds the database with admin user credentials and admin role
    Database.SetInitializer<ApplicationDbContext>(new ApplicationDbInitializer());

    }
    public DbSet<Post> Post { get; set; }
    public static ApplicationDbContext Create()
    {
    return new ApplicationDbContext();
    }
    }


    جدول را که اپدیت کردم جالب بود خودش اومده کلید خارجی ApplicationUser_Id رو ایجاد کرده !
    (در Post هیچ اشاره ای به جدول کاربر نکرده بودم)
    و جالبتر اینکه در Post , چون Comment مرتبط شده بود(با کد زیر)
            public ICollection<Comment> Comments { get; set; }

    بدون اینک DbSet این مودل را بنویسم خود به خود ایجاد شده بود.

    1.jpg
    آخرین ویرایش به وسیله alireza_rashvand : جمعه 25 مهر 1393 در 16:14 عصر

  18. #18
    کاربر دائمی آواتار alireza_rashvand
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    قزوین
    پست
    331

    نقل قول: اضافه کردن Identity 2.0

    فکر کنم تا اینجا موضوع ایجاد دینابیس حل شده باشه(التبه اگر در کامنت قبل اشتباه کردم بفرمایید)
    1- ایجاد جدول کاربران و ویرایش ان.
    2- ایجاد جدول ها دیگر.

    حالا باید موضوع دیگری هم بررسی بشه...
    navigation properties ها, LINQ ها یا در کل چطور باید از موجودیت ها استفاده کرد... (در حالت Identity)

    مثلا برای نمایش 5 پست من از این کد استفاده می کنم..


    model = db.Posts.OrderByDescending(r => r.CreateDate).Take(5).ToList();

    کد خیلی مدنظرم نیست موضوع اصلی db است.
    db از Context و خودش از DbContext ارث بری کرده بود ... (بالاتر در موردش گفتگو کردیم)
    حالا در وضعیت Identity چطور است؟ به نظرم db را باید از ApplicationDbContext نیو کرد چون از IdentityDbContext ارث بری کرده ولی جواب نداد,
    اگر دوستان یک کد به عنوان مثال بدند ممنون می شم که ببینیم در وضعیت Identity چطور از مودل ها استفاده می کنند.


    خیلی ببخشید اگر سوال هایم مبتدیانه است.

  19. #19
    کاربر دائمی آواتار sunn789
    تاریخ عضویت
    دی 1384
    محل زندگی
    در حال حاضر کره زمین
    پست
    801

    نقل قول: اضافه کردن Identity 2.0

    خوب دوستان دیدم حیف است من هم تجربیات خودم رو اضافه نکنم
    مطلب اول اینکه حال که تو ایران ک.پ.ی ر.ا.ی.ت ندارم به راحتی میشه ار اخرین ورژن ویژال استفاده کرد و حتماً هم از Update 3 استفاده کنید چون Identity 2 به راحتی جا سازی شده
    مطلب دوم اینکه من مدت مدید است که از مثال Identity استفاده میکنم اما این برای ویژال بدون آپدیت بهتره چون زمانی که شما از طریق Nuget مثال رو اضافه میکنید کلی کدهای شما رو برمیگردونه به عقب تر،
    خوب تا اینجا دو بار توی این هفته پروژه جدید که استارت میزدم به این نتیجه رسیدم با استفاده از مقایسه خودم به صورت دستی کدها رو اضافه کنم ، که بهرین کار بود چو ان زمان بود که دیدم توی اپدیت 3 خیلی از کدها به بهترین نحو اضافه شدن فقط بعضی هاشون به صورت کامنت شده و پیشنهاد داده که میتوانید از کامت خارجشون کنید .
    و اما در اخرین تمرینی که داشتم به این نتیجه رسیدم اصلاً نیازی به اضافه کردن مثال نیست ريال فقط Seed رو به پروژه اضافه کردم که یک کاربر با دسترسی SuperAdmin(این که چرا ادمین رو به سوپر ادمین تغییر دادم ماجرا ها داره ) اضافه کردم ، فقط تفوتی که داشت باید ApplicationDbInitializer رو باید در configقسمت Start_App خودم اضافه میکردم که خوب شد و خیلی هم خوب بود
    اها یه جای جلب دیگه هم داشت ، زمانی به اپدیت 3 ارتقا میدین DbSet ها رو در ابتدا خودش اضافه میکنه و یک مشکل پیش میاره ، اینکه اکر کلاسی رو مثلاً Post اضافه کنید خطا و از User بخواهید در اون لینکی داشته باشید خطایی دال بر User و ApplicationDbUser از یک جنس هستند دریافت میکنید (البته الان کل خطا یادم نیست ولی این معنی داشت ) که باید همونجایی که DbSet ها رو مینوشتید ApplicationDbUser رو حذف کنید
    ببخشید اگر بد نوشتم ، اما همچنان هستیم

  20. #20

    نقل قول: اضافه کردن Identity 2.0

    نقل قول نوشته شده توسط alireza_rashvand مشاهده تاپیک
    فکر کنم تا اینجا موضوع ایجاد دینابیس حل شده باشه(التبه اگر در کامنت قبل اشتباه کردم بفرمایید)
    1- ایجاد جدول کاربران و ویرایش ان.
    2- ایجاد جدول ها دیگر.

    حالا باید موضوع دیگری هم بررسی بشه...
    navigation properties ها, LINQ ها یا در کل چطور باید از موجودیت ها استفاده کرد... (در حالت Identity)

    مثلا برای نمایش 5 پست من از این کد استفاده می کنم..


    model = db.Posts.OrderByDescending(r => r.CreateDate).Take(5).ToList();

    کد خیلی مدنظرم نیست موضوع اصلی db است.
    db از Context و خودش از DbContext ارث بری کرده بود ... (بالاتر در موردش گفتگو کردیم)
    حالا در وضعیت Identity چطور است؟ به نظرم db را باید از ApplicationDbContext نیو کرد چون از IdentityDbContext ارث بری کرده ولی جواب نداد,
    اگر دوستان یک کد به عنوان مثال بدند ممنون می شم که ببینیم در وضعیت Identity چطور از مودل ها استفاده می کنند.


    خیلی ببخشید اگر سوال هایم مبتدیانه است.
    من از این روش زیاد استفاده کردم و هیچ مشکلی نداره. وقتی می گویید جواب نداد بهتر بود توضیح میدادید که آیا با خطایی مواجه می شوید یا ...

  21. #21
    کاربر دائمی آواتار alireza_rashvand
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    قزوین
    پست
    331

    نقل قول: اضافه کردن Identity 2.0

    نقل قول نوشته شده توسط hakim22 مشاهده تاپیک
    من از این روش زیاد استفاده کردم و هیچ مشکلی نداره. وقتی می گویید جواب نداد بهتر بود توضیح میدادید که آیا با خطایی مواجه می شوید یا ...
    بله حق با شماست باید بیشتر توضیح می دادم ولی اول می خواستم ببینم راه حلم درست بوده یا نه (db), که شما فرمودید صحیح است(اگر نیست بفرمایید)
    به نظرم db را باید از ApplicationDbContext نیو کرد چون از IdentityDbContext ارث بری کرده

    مشکل اصلی اینکه اصلا OrderByDescending رو نمی شناسه.
    کد:

    ApplicationDbContext db = new ApplicationDbContext();
    var _post = db.Posts.OrderByDescending(r => r.CreateDate);


    در این کد OrderByDescending و بعضی دیگر مثل Where را نمی شناسه.

    این کد قبل(قبل از نصب Identity )

    Context db = new Context();
    var _post = db.Posts.OrderByDescending(r => r.CreateDate);

    در این جا کاملا می شناسه مشکلی نبود...

    بازهم اگر موضوعی هست بگید توضیح بدم
    سپاس.

  22. #22

    نقل قول: اضافه کردن Identity 2.0

    1- کلاسی که باید new کنید همان ApplicationDbContext هست. البته معمولا این کلاس رو به نام دیتابیس خود پروژه تغییر نام میدهند تا همخوانی بهتری داشته باشد

    2- متدهای LINQ از نوع Extended هستند. این متدها به همه ی اشیایی که از اینترفیس IEnumerable ارث بری کرده باشند می چسبند و گزینه هایی مثل Order و Where و ... را به آنها اضافه می کنند. (اگر دقت کنید در لیست دستورات وقتی Ctrl+Space را می زنید آیکون متدهای Linq علامت خاصی دارد). برای استفاده ز متدهای LINQ مطمئن شوید که NameSpace آنها را در Using کلاس قرار داده اید :


    using System.Linq;

  23. #23

    نقل قول: اضافه کردن Identity 2.0

    سلام دوستان اصلا باورم نمیشه الان بالاخره بعد از حدود 1 ماهی تلاش های فراوان تونستم از Identity 2 استفاده کنم و بین تمام جداول پروژم و جدول AspNetUsers ارتباط برقرار کنم و حتی Migration هم فعاله

    همچنین بدون هیچ خطا و مشکلی اطلاعات در db ثبت کنم و ثبت نام کنم و هیچ ناسازگاری بین جداول خودم و Identity نیست

    امروز کلا از صبح داشتم راه و روش های مختلف را امتحان میکردم تا بالاخره با کمک راهنمایی دوستان در همین تاپیک موفق شدم دستتون درد نکنه

    البته چند روز پیش آقای نجفی پور راهنمایی هایی بهم کردن ولی دوباره به مشکل برخوردم و وقتی اطلاعات ثبت میکردم و ثبت نام میکردم خطا میداد و ناسازگاری بود. Migration هم درست کار نمیکرد ...

  24. #24

    نقل قول: اضافه کردن Identity 2.0

    دوستانی که با ASP.NET Identity مشکل دارند. کتاب Pro ASP.NET MVC 5 Platform دو فصل رو به تشریح Identity پرداخته , متنش هم روان هست. این مباحث چون ضروری هست و اولویت یادگیریش بسیار بالاست باید حتما مطالعه اش کنید و نمیشه از کنارش عبور کرد. این دو فصل و یا پرینت بگیری یا به هر روش دیگه ایی که برای مطالعه متن ها راحت هستید , و بخونید و یکبار این زحمت و بکشید و یادش بگیرید.
    توصیه می کنم به دوستانی که با الگوهای طراحی و معماری های چند لایه آشنا نیستند. در همون پروژه وب پوشه هایی رو ایجاد کنند برای لایه بندی. چون فرضا شما بخشی از مدیریت پروژه رو انتقال میدی به یه لایه جدید, وقتی هم به Identity میرسی برای انتقالش به لایه دیگه ممکنه با مشکلاتی مواجهه بشید. اونوقت چه کار می کنید ؟ بخشی از پروژه رو در یه لایه مدیریت می کنید و بخشی رو در همون لایه وب ؟ یعنی مدیریت مطالب و انتقال میدین و مدیریت کاربران و خیر ؟! و اگر در بخش مطالب نیاز به دسترسی به کاربران داشتید چه کار می کنید؟

  25. #25
    کاربر دائمی آواتار alireza_rashvand
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    قزوین
    پست
    331

    نقل قول: اضافه کردن Identity 2.0

    با سلام دوباره...
    با تشکر از همه دوستان

    مدتی گرفتار پروژه دیگه ای بودم الان دوباره برگشتم روی ادامه اموختن mvc
    تشکر از اقای hakim22 مشکل با اضافه کردن Linq حل شد...
    سوال که برام پیش اومده اینکه:
    حالا اگر بخواهیم یک پست در دیتابیس ثبت کنیم (با توجه به اینکه در کامنت های قبل عرض شد که
    ApplicationUser_Id
    اتوماتیک به جدول پست اضافه شد) ریختن USERID یا همان مشخص کردن ثبت کنند این پست به چه صورته!


    در اکشن ثبت پست :
    1- چگونه id کابر رو بگیریم؟
    2- مقدار چگونه درون
    ApplicationUser_Id بریزیم؟
    (مشکل اینجاست که خود ما همچین فیلدی رو در تعریف پست ایجاد نکردیم و نمی توانیم ان را مساوی با مقداری قرار دهیم).

    اگر خوب توضیح ندادم بفرمایید دقیقتر بیان کنم.

  26. #26
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    在上帝面前
    پست
    374

    نقل قول: اضافه کردن Identity 2.0

    1- با دستور
    User.Identity.getuserid()

    می تونی مقدار id کاربر رو بگیری
    2- شما یه فیلد در جدول پست تعریف می کنی که مثلا کلید خارجی هست به شکل زیر:

    [ForeignKey("Writer")]
    public virtual ApplicationUser ApplicationUser { get;set; }
    public string Writer { get; set; }

    حالا برای مقدار دهی این فیلد در زمان ثبت اطلاعات میگی

    post.Writer = User.Identity.GetUserId();

    اگه من درست متوجه شده باشم با همین کارها حل میشه

  27. #27
    کاربر دائمی آواتار alireza_rashvand
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    قزوین
    پست
    331

    نقل قول: اضافه کردن Identity 2.0

    احسنت به شما... سپاس...

تاپیک های مشابه

  1. نحوه ی اضافه کردن Identity به لایه های پروژه
    نوشته شده توسط HOSSEINONLINE7 در بخش ASP.NET MVC
    پاسخ: 29
    آخرین پست: دوشنبه 21 مهر 1393, 13:16 عصر
  2. سوال: اضافه کردن مقدار یک ستون بدون استفاده از Identity
    نوشته شده توسط alex_kh58 در بخش SQL Server
    پاسخ: 8
    آخرین پست: سه شنبه 04 خرداد 1389, 18:14 عصر
  3. اضافه کردن ستون ردیف در Data Report
    نوشته شده توسط sad13 در بخش ابزارهای گزارشگیری در VB6
    پاسخ: 4
    آخرین پست: شنبه 16 آذر 1387, 10:41 صبح
  4. چگونگی اضافه کردن یک رکورد در dataenvironment
    نوشته شده توسط ahmad_rabie2002 در بخش VB.NET
    پاسخ: 3
    آخرین پست: دوشنبه 07 مهر 1382, 16:37 عصر
  5. اضافه کردن دکمه به MsgBox
    نوشته شده توسط ehsan-ets در بخش برنامه نویسی در 6 VB
    پاسخ: 11
    آخرین پست: یک شنبه 19 مرداد 1382, 18:45 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •