یه همچین متدی توی همون کلاس CustomAthentication ایجاد کنید:
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary { { "action", "NotAuthorized" }, { "controller", "Account" } });
}
و تو کنترلر Account:
[Authorize]
public string NotAuthorized()
{
return "You don't have access to this part.";
}
یه مورد دیگه هم اینکه اروری که شما میگید یکم به نظرم غیر منطقی میاد.
چونکه شما تو AuthorieCore وقتی می خواید چک کنید دسترسی رو UserId کاربر فعلی رو می فرستید و دسترسی رو می خونید.وقتی کاربر لاگین کرده چطور بر می گرده به صفحه ی لاگین؟
من تو دیتابیس 3 تا جدول دارم.User,UserRole,Role
جدول یوزر دارای یک UserTypeId هستش.
جدول UserRole برای هر UserTypeId یک(یا بیشتر از یک) RoleId داره و یه فیلد Access که می تونه True و False باشه.
جدول Role هم دارای یه فیلد Controller و Action هستش.
حالا تو AuthorizeCore من با استفاده از نام Controller و Action همونجا Role مربوط به این دو رو می خونم.بعد UserTypeId کاربر فعلی و RoleId رو میفرستم که ببینم بهم یه UserRole بر می گردونه یا نه.اگه برگردوند میبینم Access چی هست.true یا false.