dotNet .Net Core 解决使用iframe框架登录超时跳转的登录界面还在iframe里
感谢:https://blog.csdn.net/duyunzhi/article/details/89215917 提供思路
感谢:https://q.cnblogs.com/q/111311 提问,提供解决方案
用原生的 Attribute 是达不到效果必须重写
public class LoginAuthorizationFilter : Attribute, IAuthorizationFilter
{
private readonly IHttpContextAccessor _httpContextAccessor;
private ISession _session => _httpContextAccessor.HttpContext.Session;
public AdminLoginAuthorizationFilter(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}
public void OnAuthorization(AuthorizationFilterContext context)
{
//也可以这样获取Session,就不需要注入了。
var testData = context.HttpContext.Request.Cookies.TryGetValue("User", out string value);
if (!testData || string.IsNullOrWhiteSpace(value))
{
ContentResult Content = new ContentResult();
Content.Content = "<script type='text/javascript'>parent.window.location.href='/User/Login'</script>";
Content.ContentType = "text/html";
//截断请求
context.Result = Content;
}
}
}
使用 [TypeFilter(typeof(LoginAuthorizationFilter))]

浙公网安备 33010602011771号