ایجاد action برای logoff در برنامه های MVC

3/14/2016 MVC
1366

پیشنهاد میکنم برای آشنایی با ثبت کاربر و مدیریت نقشها مطالب اول و دوم مربوط به Identity  را در همین سایت مطالعه نمایید.

زمانی که از Area  ها در MVC  استفاده میکنید و با استفاده از menu  کاربر وارد شده با کلیک بر روی آیکون خروج میخواهد که از حساب کاربری خود خارج شود اگر از partioal  خود MVC  که در پوشه View/_Layout  روت پروژه استفاده کنید  با خطایی مواجه میشود که MyProject/Account/LogOff را پیدا نکرده است.

برای ایجاد LogOff  در قسمت Area  لازم است تا Controll خالی در همان قسمت area که ایجاد کرده اید اضافه کنید و action زیر را به آن اضافه نمایید.

 private IAuthenticationManager AuthenticationManager
        {
            get
            {
                return HttpContext.GetOwinContext().Authentication;
            }
        }
        // POST: /Account/LogOff
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult LogOff()
        {
            AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
            return RedirectToAction("Index", "Home", new { @area="fa"});
        }

با این حالت زمانی که پروژه شما از Layout_  مربوط به خودش استفاده میکند میتوان کد به راحتی استفاده کنید و به قسمت خروج اختصاصی همان Area  هدایت شد.