gpt4 book ai didi

asp.net-mvc - 具有自定义重定向的 AuthorizeAttribute

转载 作者:行者123 更新时间:2023-12-05 00:05:59 27 4
gpt4 key购买 nike

我想使用标准的 AuthorizeAttribute(即不继承它)但使用自定义重定向。那可能吗?我应该在哪里检查 401 并重定向?

我试过添加

<customErrors mode="On" > 
<error statusCode="401" redirect="/Errors/NotAuthorized/" />
</customErrors>

但它没有用。

最佳答案

在我的 ApplicationController 中这样做:

    protected override void OnAuthorization(AuthorizationContext filterContext)
{
var attributes = filterContext.ActionDescriptor.GetCustomAttributes(typeof(AuthorizeAttribute), true);
if (attributes.Length == 0)
attributes = GetType().GetCustomAttributes(typeof(AuthorizeAttribute), true);
if (attributes.Length == 0)
return;

foreach (AuthorizeAttribute item in attributes)
{
if (!Thread.CurrentPrincipal.IsInRole(item.Roles))
{
filterContext.Result = new RedirectResult("/Errors/Unauthorized");
}
}
}

我会奖励任何有更好解决方案的人。

关于asp.net-mvc - 具有自定义重定向的 AuthorizeAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3943419/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com