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

نام تاپیک: ساختن کاربر جدید در Identity

  1. #1

    ساختن کاربر جدید در Identity

    سلام دوستان.
    یه سوال داشتم.
    زمانی که از خود پروژه mvc به صورت پیش فرض استفاده میشه یه کنترلر Account داریم که اکشن Register اون به صورت Async نوشته شده.






    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Register(RegisterViewModel model)
    {
    if (ModelState.IsValid)
    {
    var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
    var result = await UserManager.CreateAsync(user, model.Password);
    if (result.Succeeded)
    {
    await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);


    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
    // Send an email with this link
    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(us er.Id);
    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");


    return RedirectToAction("Index", "Home");
    }
    AddErrors(result);

    }


    // If we got this far, something failed, redisplay form
    return View(model);
    }




    حالا اگه از حالت Async استفاده نشه چه مشکلاتی میتونه پیش بیاد؟
    اگه توی یک مثال عملی این مورد رو توضیح بدین ممنون میشم

  2. #2

    نقل قول: ساختن کاربر جدید در Identity

    بدون استفاده از Async هم هیچ مشکلی پیش نمیاد.
    استفاده از async باعث میشه بعنوان مثال عملیات ثبت نام کاربر داخل یک Thread دیگه فارغ از Main Thread انجام بشه که باعث میشه برنامتون منتظر تموم شدن ثبت نام کاربر نمونه و UI برنامه که در Main Thread هست block بشه.

    این پاسخ کامل به این سوال هست : https://stackoverflow.com/a/19087592/6661314

  3. #3

    نقل قول: ساختن کاربر جدید در Identity

    وقتی شما از Async استفاده می کنید یک Thread جدید برای انجام عملیات ایجاد میشه که میتونه موازی با Thread اصلی پروژه کار کنه.
    در مواقعی که عملیات زمانبره و مربوط به سرور دیگه ای میشه (مثل وب سرویسها خارجی) یا مربوط به نرم افزار دیگه ای میشه (مثل تبدیل فایل به pdf) یا در بخش دیگری از سیستم عامل مدیریت میشه
    (مثل ایجاد فایل) بهتره از Async استفاده کنید. عدم استفاده از Async در ترافیک بالا میتونه باعث کندی بیش از حد سایت بشه و همه ی کاربرهارو آزار بده. اما در ترافیک پایین عملا مشکلی ایجاد نمیکنه.

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

    نکته اینکه تعداد محدودی Thread داریم و اینطور نیست که بشه به هر تعداد لازم از اونها ساخت و موازی کردن همیشه بهترین راه نیست.
    و دیگر اینکه اگر عملیات موازی سازی شده درون یک سرور داره انجام هرچند باعث استفاده ی حد اکثری از منابع سیستم میشه اما کمک زیادی به بالا رفتن سرعت نمیکنه.
    کار اصلی که انجام میده جدا کردن عملیات UI از سیستم هست که از هنگ کردن ظاهری سایت یا نرم افزار جلوگیری میکنه.
    بهترین حالت زمانی هست که عملیات در سرور یا رایانه ی دیگری انجام بشه.

  4. #4

    نقل قول: ساختن کاربر جدید در Identity

    عدم استفاده از Async در ترافیک بالا میتونه باعث کندی بیش از حد سایت بشه و همه ی کاربرهارو آزار بده. اما در ترافیک پایین عملا مشکلی ایجاد نمیکنه.
    یعنی اگر روال ثبت نام کاربر ما فقط در حد ذخیره در دیتابیس باشه نه بیشتر.مثلا ایمیل نفرستیم،اس ام اس ارسال نشه، نیازی به Async نیست.درسته؟

    نکته اینکه تعداد محدودی Thread داریم و اینطور نیست که بشه به هر تعداد لازم از اونها ساخت و موازی کردن همیشه بهترین راه نیست.
    تعداد تردها چقدر هست؟ آیا بستگی به هاست داره و یا اینکه خود برنامه تعداد تردهاش محدود هست؟

    کار اصلی که انجام میده جدا کردن عملیات UI از سیستم هست که از هنگ کردن ظاهری سایت یا نرم افزار جلوگیری میکنه.
    اینکه گفته میشه ui نرم افزار هنگ میکنه ، مگه توی وب سایت هم ui هنگ میکنه؟ منظورت از هنگ کردن مدت زمان زیادی هست که کاربر منتظر پاسخ میمونه؟
    چون هنگ کردن رو توی برنامه های ویندوز فرم دیدم که فرم قفل میشه تا اون عملیات انجام بشه.

  5. #5

    نقل قول: ساختن کاربر جدید در Identity

    نقل قول نوشته شده توسط سعید کشاورز مشاهده تاپیک
    یعنی اگر روال ثبت نام کاربر ما فقط در حد ذخیره در دیتابیس باشه نه بیشتر.مثلا ایمیل نفرستیم،اس ام اس ارسال نشه، نیازی به Async نیست.درسته؟
    به ظاهر نیاز نیست ولی در Identity به علت اینکه از دیتابیس استفاده میکنه و کار با دیتابیس در مقایسه با سایر عملیاتها کنده کل سیستم Identity از Async استفاده میکنه. در نسخه ی جدید Identity فقط امکان استفاده از Async وجود داره.


    تعداد تردها چقدر هست؟ آیا بستگی به هاست داره و یا اینکه خود برنامه تعداد تردهاش محدود هست؟
    بستگی به سرور و حجم درخواستها داره. اما از نظر تعداد به طور پیشفرض 12 و تا حداکثر 5000 تا قابل افزایشه. می توانید در Web.Config تنظیم کنید. اما بالا بردن عدد لزوما باعث بالا رفتن بازدهی سایت نمیشه. ممکنه باعث کندی هم بشه.


    اینکه گفته میشه ui نرم افزار هنگ میکنه ، مگه توی وب سایت هم ui هنگ میکنه؟ منظورت از هنگ کردن مدت زمان زیادی هست که کاربر منتظر پاسخ میمونه؟
    چون هنگ کردن رو توی برنامه های ویندوز فرم دیدم که فرم قفل میشه تا اون عملیات انجام بشه.
    در IIS تعداد محدودی از Thread ها برای پاسخ گویی به درخواستهای Http در نظر گرفته میشه. اگه هیچ Thread در دسترس نباشه درخواستهای جدید باید منتظر پایان درخواستهای قبلی باشن (وضعیتی که در مرورگر با چرخش دایره کنار تب نشون داده میشه) که به معنی قفل شدن UI یا همون مرورگره. اگر زمان انتظار از یک حدی بیشتر بشه معمولا خطای 500 برگردونده میشه. در واقع تعداد درخواست از و حجم اونها از توان سیستم سر ریز میکنه و سرور دیگه قادر به پاسخگویی نیست.

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

  1. سوال: نحوه ساختن یوزر جدید در ویندوز
    نوشته شده توسط maminb در بخش VB.NET
    پاسخ: 6
    آخرین پست: شنبه 05 دی 1388, 13:19 عصر
  2. پاسخ: 1
    آخرین پست: جمعه 27 دی 1387, 16:41 عصر
  3. ساختن اجزای جدید در صفحه نسبت به یک شرط خاص
    نوشته شده توسط maxpayn2 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: چهارشنبه 01 اسفند 1386, 16:48 عصر
  4. ایجاد کاربر جدید در برنامه ها
    نوشته شده توسط vahidm در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: چهارشنبه 04 مهر 1386, 07:36 صبح
  5. اضافه کردن کاربر جدید در اکتیو دایرکتوری با asp.net
    نوشته شده توسط sanaz_ در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: پنج شنبه 16 مهر 1383, 12:32 عصر

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

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