iT邦幫忙

0

C# 如何客製化登入驗證方式 AuthorizeAttribute 回應 403 Forbidden

Ks 2019-04-18 18:25:505502 瀏覽
  • 分享至 

  • xImage

請問我該如何改寫AuthorizeAttribute來回傳Session過期回傳403 status code?

目前網站使用[Authorize]來登入,當Session Token過期就會跳轉到Login Page.
Login Page是在別的系統,使用的是JWT Authorize身分驗證。

遇到問題的地方是ajax當Token過期的時候redirect會回傳登入頁面到ajax,
而不是403.

想實作類似以下的功能,但是不知道該怎麼實作這一部分,沒什麼概念

public class ForbiddenAuthorizeAttribute : AuthorizeAttribute
{
}

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
舜~
iT邦高手 1 級 ‧ 2019-04-19 09:04:34
最佳解答
Ks iT邦新手 3 級 ‧ 2019-04-21 23:02:01 檢舉

感謝答复,我會參考試試看,如果有問題再發到這裡/images/emoticon/emoticon05.gif

Ks iT邦新手 3 級 ‧ 2019-04-22 17:47:36 檢舉

有試者做了一個出來,目前測試好像沒什麼問題,但是主要用JWT Token,所以不確定跟asp的identity會不會有衝突,因為目前取得的user.Identity.IsAuthenticated在login之後是true的
/images/emoticon/emoticon03.gif

public class ForbiddenAuthorizeAttribute : AuthorizeAttribute, IAuthorizationFilter
    {
        public void OnAuthorization(AuthorizationFilterContext context)
        {
            var user = context.HttpContext.User;
            if (!user.Identity.IsAuthenticated)
            {
                context.Result = new ForbidResult();
                return;
            }
        }
    }

我要發表回答

立即登入回答