請問我該如何改寫AuthorizeAttribute來回傳Session過期回傳403 status code?
目前網站使用[Authorize]來登入,當Session Token過期就會跳轉到Login Page.
Login Page是在別的系統,使用的是JWT Authorize身分驗證。
遇到問題的地方是ajax當Token過期的時候redirect會回傳登入頁面到ajax,
而不是403.
想實作類似以下的功能,但是不知道該怎麼實作這一部分,沒什麼概念
public class ForbiddenAuthorizeAttribute : AuthorizeAttribute
{
}
感謝答复,我會參考試試看,如果有問題再發到這裡
有試者做了一個出來,目前測試好像沒什麼問題,但是主要用JWT Token,所以不確定跟asp的identity會不會有衝突,因為目前取得的user.Identity.IsAuthenticated在login之後是true的
public class ForbiddenAuthorizeAttribute : AuthorizeAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
var user = context.HttpContext.User;
if (!user.Identity.IsAuthenticated)
{
context.Result = new ForbidResult();
return;
}
}
}