AuthorizeAttribute认证失败Redirect后依旧会进入Action

MVC中AuthorizeAttribute重写后,认证失败,要跳到登陆页面HandleUnauthorizedRequest中是这样写的

filterContext.HttpContext.Response
    .Redirect("/Account/Login?returnUrl=" + 
    HttpUtility.UrlEncode(filterContext.HttpContext.Request.Url.ToString()));

然后在Action里因为要使用用户信息,结果用户信息为NULL结果触发了异常。有人说Redirect要加个true,我也加了,不过没用。

原来人家自己提供了跳转的方法

filterContext.Result = new RedirectResult("/Account/Login?returnUrl=" + 
    HttpUtility.UrlEncode(filterContext.HttpContext.Request.Url.ToString()));

我就是这么笨,欢迎吐槽

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 .NET 6 中,`AuthorizeAttribute` 仍然是用于进行身份验证和授权的重要特性之一。它用于标记需要进行身份验证的控制器或动作方法,并确保只有经过身份验证的用户才能访问它们。 要在 .NET 6 中使用 `AuthorizeAttribute`,你可以按照以下步骤操作: 1. 在你的控制器或动作方法上添加 `AuthorizeAttribute` 特性。例如: ```csharp [Authorize] public IActionResult MyAuthorizedAction() { // 这个动作方法需要进行身份验证才能访问 // ... } ``` 2. 根据你的需求,你可以通过 `Roles`、`Policy`、`AuthenticationSchemes` 等属性对 `AuthorizeAttribute` 进行进一步配置。例如: ```csharp [Authorize(Roles = "Admin", Policy = "CustomPolicy", AuthenticationSchemes = "Bearer")] public IActionResult MyAuthorizedAction() { // 这个动作方法需要进行身份验证,并且用户必须是 "Admin" 角色、满足 "CustomPolicy" 策略,并使用 "Bearer" 认证方案进行认证 // ... } ``` 注意,以上示例中使用的 `AuthorizeAttribute` 是命名空间 `Microsoft.AspNetCore.Authorization` 中的类。确保你的项目引用了正确的依赖项并导入了正确的命名空间。 另外,你可能还需要配置身份验证和授权的其他相关设置,例如身份验证方案、策略等。这些设置可以在 `Startup.cs` 文件中的 `ConfigureServices` 方法中进行配置。例如: ```csharp public void ConfigureServices(IServiceCollection services) { // ... services.AddAuthentication("Bearer") .AddJwtBearer("Bearer", options => { // 配置 JWT Bearer 认证选项 // ... }); services.AddAuthorization(options => { options.AddPolicy("CustomPolicy", policy => { // 配置自定义策略 // ... }); }); // ... } ``` 请根据你的具体需求进行适当的配置和调整。希望这些信息对你有所帮助!如果你有更多问题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值