اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
یک دقیقه
به صورت پیش فرض دسترسی به تمامی اکشنها مجاز است مگر اینکه آن اکشن به تگ Authorize مزین شود.
حال Best Practice این است که حتی اگه شما یک یا دو اکشنی دارید که نیاز است کاربرای خاصی به آنها دسترسی داشته باشند بهتر است که دسترسی به تمام اکشنها محدود شود و بعد آن اکشنهایی که نیاز است دسترسی عمومی داشته باشند، بهشون دسترسی داده بشه. در واقع هدف از این Best Practice جلوگیری از قلم افتادن یک اکشن به اشتباه، هنگام دادن تگ Authorize هست.
خوب، برای انجام اینکار از فیلترهای سفارشی سراسری (Global Filters) استفاده میکنیم. کافیه خط زیر رو به کلاس FilterConfig اضافه کنید.
با این کار تمام اکشنهای شما با تگ Authorize مزین میشوند و تمام دسترسیها محدود.
نکته: این روش تا قبل از ASP.NET MVC 4 فقط برای سیستمهایی که هیچ اکشنی با دسترسی عمومی نداشتن جوابگو بوده و در صورت داشتن چنین اکشنی این روش جوابگوی شما نیست. ولی از ASP.NET MVC 4 به بعد با اضافه شدن تگ [AllowAnonymous] این مشکل حل شده.
حالا که تمامی اکشنها محدود شدن، حالا نوبت به اکشنهایی میرسه که دسترسی عمومی به اونها آزاده.
برای این کار به راحتی از تگ [AllowAnonymous] استفاده میکنیم
فایل پروژهBestPracticeForAuthenticatingUsers.rar
حال Best Practice این است که حتی اگه شما یک یا دو اکشنی دارید که نیاز است کاربرای خاصی به آنها دسترسی داشته باشند بهتر است که دسترسی به تمام اکشنها محدود شود و بعد آن اکشنهایی که نیاز است دسترسی عمومی داشته باشند، بهشون دسترسی داده بشه. در واقع هدف از این Best Practice جلوگیری از قلم افتادن یک اکشن به اشتباه، هنگام دادن تگ Authorize هست.
خوب، برای انجام اینکار از فیلترهای سفارشی سراسری (Global Filters) استفاده میکنیم. کافیه خط زیر رو به کلاس FilterConfig اضافه کنید.
filters.Add(new AuthorizeAttribute());
نکته: این روش تا قبل از ASP.NET MVC 4 فقط برای سیستمهایی که هیچ اکشنی با دسترسی عمومی نداشتن جوابگو بوده و در صورت داشتن چنین اکشنی این روش جوابگوی شما نیست. ولی از ASP.NET MVC 4 به بعد با اضافه شدن تگ [AllowAnonymous] این مشکل حل شده.
حالا که تمامی اکشنها محدود شدن، حالا نوبت به اکشنهایی میرسه که دسترسی عمومی به اونها آزاده.
برای این کار به راحتی از تگ [AllowAnonymous] استفاده میکنیم
[AllowAnonymous] public ActionResult Index() { return View(); }
فایل پروژهBestPracticeForAuthenticatingUsers.rar