请勿将URL重定向与ForbidResult一起使用,也不要将数据从ASP.NET Core和Identity传递到Account AccessDenied View

问题描述

使用下面的“ ForbidResult”,这会导致url重定向。因此,Context.Items["data"]对于重定向页面/MicrosoftIdentity/Account/AccessDenied?ReturnUrl=SomeSite丢失。

 public class PermissionAttribute : TypeFilterAttribute
    {

        private class PermissionFilter : IAsyncActionFilter
        {

            public async Task OnActionExecutionAsync(ActionExecutingContext context,ActionExecutionDelegate next)
            {
                context.HttpContext.Items["data"] = "some data";
               
                var authorized = check_if_it_has_permissions();
                if (authorized)
                {
                    await next();
                }
                else
                {
                    context.Result = new ForbidResult();  //this is a url redirect using /MicrosoftIdentity/Account/AccessDenied?ReturnUrl=SomeSite        
                }
            }
        }
    }

partial_view_header.cshtml

<div id="header">
    @{
                Context.Items["data"]              
     }

</div>

是否可以保留当前网址,而不将其更改为“ / MicrosoftIdentity / Account / AccessDenied?ReturnUrl = xxx”,或将数据传递到“帐户AccessDenied”视图的方法?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)