作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我返回 ForbidResult()
时,它会重定向到启动时指定的 AccessDenied
页面。我想对 UnauthorizedResult()
做同样的事情,但重定向到 Login
页面。
P.S. 我没有在 Controller 中使用标准的 Authorize
属性我有自己的。
授权过滤器:
public class MyFilter : IAuthorizationFilter
{
//
public MyFilter()
{
//
}
public void OnAuthorization(AuthorizationFilterContext context)
{
if (context.HttpContext.User.Identity.IsAuthenticated)
{
var hasPermission= ... ;
if (!hasPermission)
{
context.Result = new ForbidResult();
}
}
else
{
context.Result = new UnauthorizedResult();
}
}
}
启动:
services.AddAuthentication.AddCookie(options =>
{
options.LoginPath = "/Accounts/Login";
options.LogoutPath = "/Accounts/Logout";
options.AccessDeniedPath = "/Accounts/AccessDenied";
});
最佳答案
要重定向到在 options.LoginPath = "/Accounts/Login";
中配置的登录页面,您可以尝试以下代码:
public class MyFilter : IAuthorizationFilter
{
//
public MyFilter()
{
//
}
public void OnAuthorization(AuthorizationFilterContext context)
{
if (context.HttpContext.User.Identity.IsAuthenticated)
{
var hasPermission= ... ;
if (!hasPermission)
{
context.Result = new ForbidResult();
}
}
else
{
context.Result = new ChallengeResult(CookieAuthenticationDefaults.AuthenticationScheme);
}
}
}
关于c# - 如何从 asp net core 中的 AuthorizationFilter 重定向到登录页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57853415/
嗨,我有一个授权过滤器,它是使用 Autofac 对 WebApi 的支持创建的。总结如下: public class ApplicationTokenValidatorAttribute : IAu
您好,我在 mvc 网站中有一个 web api Controller 。我正在尝试使用 2 条规则允许访问 Controller :用户是管理员或请求来自本地计算机; 我是 Authorizatio
当我返回 ForbidResult() 时,它会重定向到启动时指定的 AccessDenied 页面。我想对 UnauthorizedResult() 做同样的事情,但重定向到 Login 页面。 P
我是一名优秀的程序员,十分优秀!