是否可以在自定义 AuthorizeAttribute 类中使用 RedirectToAction() ?

2024-01-12

使用 ASP.Net MVC 2,有什么方法可以使用重定向到动作() http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.redirecttoaction.aspx的方法控制器 http://msdn.microsoft.com/en-us/library/dd505093%28v=VS.90%29.aspx类中的类基于AuthorizeAttribute class?

public class CustomAttribute : AuthorizeAttribute {
    protected override bool AuthorizeCore(HttpContextBase context) {
        // Custom authentication goes here
        return false;
    }

    public override void OnAuthorization(AuthorizationContext context) {
        base.OnAuthorization(context);

        // This would be my ideal result
        context.Result = RedirectToAction("Action", "Controller");
    }
}

我正在寻找一种方法,当用户身份验证失败时将用户重定向到特定的控制器/操作,而不是将其返回到登录页面。是否可以为该控制器/操作生成重定向 URL,然后使用重定向结果() http://msdn.microsoft.com/en-us/library/system.web.mvc.redirectresult.aspx?我试图避免仅仅对 URL 进行硬编码的诱惑。


你可以/应该覆盖HandleUnauthorizedRequest代替OnAuthorization。这是默认的实现:

    protected virtual void HandleUnauthorizedRequest(AuthorizationContext filterContext) {
        // Returns HTTP 401 - see comment in HttpUnauthorizedResult.cs.
        filterContext.Result = new HttpUnauthorizedResult();
    }

你不能使用Controller.RedirectToAction, 但是你can返回一个新的RedirectToRouteResult.

所以你可以这样做:

    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) {
        // Returns HTTP 401 - see comment in HttpUnauthorizedResult.cs.
        filterContext.Result = new RedirectToRouteResult(
                                   new RouteValueDictionary 
                                   {
                                       { "action", "ActionName" },
                                       { "controller", "ControllerName" }
                                   });
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在自定义 AuthorizeAttribute 类中使用 RedirectToAction() ? 的相关文章

  • .net MVC、SelectList 和 LINQ

    我刚开始在 MVC 框架中使用 Html DropDownList 并且很难理解如何从数据库中选择数据以绑定到 DropDownList 有没有一种简单的方法可以从标准 LINQ 查询返回可绑定列表 例如 SelectList Select
  • 如何在 MVC4 的 UserProfile 中创建自定义附加字段

    我遇到了新的 ASP MVC 4 功能 它附带了新的成员资格数据库模式和新的初始化 在 mvc 3 和旧版本中 开发人员能够使用 web config 中的规范创建自定义用户配置文件字段 但现在我面临默认 mvc 4 项目中过滤器命名空间中
  • 控制器名称是从类名称派生的吗?

    这是一个新手问题 我正在查看默认的 asp net mvc3 项目 注意到有一个名为 public class AccountController Controller 我查看了整个代码 找不到指定 AccountController 映射
  • ASP .net MVC中每个数据存储区域的寿命是多少

    我已经看到了一些关于这些的解释 但没有什么可以真正比较它们的开始 结束或重叠的地方 也没有很好的使用例子 以下每个数据集合的生命周期是多少 我还缺什么吗 应用 Session ViewData TempData 应用程序 只要您的应用程序正
  • 如何从 System.Web.HttpPostedFileBase 转换为 System.Web.HttpPostedFile?

    在尝试实现 MVC 文件上传时example http www hanselman com blog ABackToBasicsCaseStudyImplementingHTTPFileUploadWithASPNETMVCIncludin
  • ASP.NET MVC 数据注释属性 Range 从另一个属性值设置

    您好 我的 Asp net MVc 模型中有以下内容 测试模型 cs public class TestModel public double OpeningAmount get set Required ErrorMessage Requ
  • Asp.Net 捆绑不使用 .min 文件

    根据发布模式下的文档 捆绑程序应该使用 min js 文件 如果存在 我通过以下方式添加角度 bundles Add new ScriptBundle Bundles Scripts Include Content Scripts angu
  • 为什么 DropDownListFor 无法识别编辑器模板中的选定值?

    我有以下名为 DropDown cshtml 的编辑器模板 这list部分工作正常 模板使用了一些我所做的巫毒来获得所需的SelectList from ViewData 控制器将视图模型中的所有选择列表放入ViewData 并且列表方面没
  • ASP.Net MVC 4 通用主要难点

    我正在开发一个ASP NET MVC 4Web应用程序 以前我的 MVC 应用程序是使用MVC 3和这个新的MVC 4我刚刚复制 重复使用了我的应用程序认证和授权码从以前的应用程序 当用户登录我的网站时 我会执行以下操作 账户控制器 pub
  • 尝试通过安全透明方法 xxx 访问安全关键 yy

    我刚刚开始学习 ASP NET MVC 并遵循 ASP NET MVC 教程 我正在使用 Visual Studio Express 2013 RC for Web 认为这可能是我的问题的原因 因为分页教程是使用 VS2012 编写的 一切
  • 在ConfigureServices中注入依赖

    在我的 ASP Net Core 应用程序中 我需要在以下位置注入一些依赖项 在我的例子中是一个存储库 ConfigureServices method 问题是该方法不允许使用多个参数来注入依赖项 该怎么办呢 这是我的代码 public v
  • .net 4.7 中的依赖注入?

    我对 DI 有哪些集成选项有点困惑 我发现它对于 net core 对于我的特定项目 来说非常简单 但我不需要构建跨平台应用程序 也看不到使用 core 的优势 但是 net 框架应用程序似乎仍然使用 Global asax 设置且没有 S
  • 具有实体框架的 MVC 控制器的 T4 模板 - 主机的成员属性 (MvcTextTemplateHost)?

    有谁有我可以在 MVC 3 附带的 T4 模板 ControllerWithContext tt 中使用的 Host 对象成员的完整引用吗 我已经尝试了我能想到的所有谷歌搜索 但唯一相关的结果是这个页面 http blogs msdn co
  • ASP.NET MVC 显示配置文件中的用户名

    以下是LogOn来自 Visual Studio 创建的标准默认 ASP NET MVC 项目的用户控件 登录用户控件 ascx Welcome b b
  • 有没有更好的方法使用 MVC 4 和 Entity Framework 5 添加子记录?

    我正在学习 MVC 并结合实体框架处理其无状态性质 我的问题是 有没有更优雅的方式来处理下面的场景 我有两个 POCO 实体 public class Contest public long ID get set public IColle
  • 包括过滤器子集合[重复]

    这个问题在这里已经有答案了 我在为 LINQ 查询中包含的项目添加一些过滤条件时遇到一些困难 我的查询就像 var item Context Order Include Inner Include Inner first Include I
  • 传入字典的模型项是类型

    我有一个我理解的错误 但无法找出以正确的方式解决的方法 我有一个 MasterPage 我从该 MasterPage 中调用 标签是一个强类型视图 如下所示 我像这样返回 PartialView return View Tags resul
  • asp.net mvc:将 RedirectToAction(string, object) 转换为 RedirectToAction(x => x.Detail(id))

    任何人都知道如何创建一个方法 我将把它放在扩展类中 该方法将仅使用表达式 无魔术字符串 与 mvc 的 RedirectToAction 执行相同的操作 所以不要写这样的东西 RedirectToAction Detail new Rout
  • JQuery Mobile 与 MVC 的链接

    我正在使用 ASP NET MVC 3 和 Razor UI 设置 JQuery 移动网站 我正在生成我的链接 例如 a href See Group 2 a 假设我从 Home Index 访问它 我遇到的问题是 当我点击链接时 它会出现
  • 表单身份验证 MVC4

    我正在尝试使用 MVC4 网站进行简单的表单身份验证设置 在App start FilterConfig cs中 public static void RegisterGlobalFilters GlobalFilterCollection

随机推荐

  • BitmapImage 缺少 BeginInit() 和 EndInit() 函数?

    据我发现 我似乎无法访问上述功能 我正在导入 BitmapImage 类 using System Windows Media Imaging 但是在下面的代码中 public static void loadCardImage Card
  • 无法使用 Virtualenv 通过 pip 安装

    以下是我运行时遇到的错误pip serkan rm r mysite serkan pwd Users serkan Desktop Python Folder serkan virtualenv mysite New python exe
  • 传统 Web 应用程序和 API 中的身份验证、授权和会话管理

    如果我错了 请纠正我 在传统的 Web 应用程序中 浏览器会自动将会话信息附加到向服务器发出的请求中 以便服务器可以知道该请求来自谁 实际上到底附加了什么 但是 在基于 API 的应用程序中 此信息不会自动发送 因此在开发 API 时 我必
  • 运行 Android Studio gradle 构建时如何使用所有 CPU 核心/线程?

    我正在 Android Studio 中寻找参数或配置 Gradle 它可以设置构建 以便在构建期间使用我的所有 CPU 核心 即 如果我有一个四核 CPU 并且每个核心运行 8 个线程 我如何优化构建 以便它将使用它可以获得的所有资源 当
  • Matlab M 脚本可以通过脚本中的语句停止吗?

    一个非常简单且可能显而易见的问题 如何使用脚本中的语句中止 Matlab M 脚本的执行 这类似于调用return在函数中间立即结束它 If return http www mathworks com help matlab ref ret
  • 性能监控Openerp

    我们正在尝试实施新的遗物 http www newrelic com http www newrelic com 在开发服务器上测试 openerp 的性能 newrelic的以下安装步骤要求我们修改WSGI应用程序文件 我是 opener
  • TDD:单元测试异步调用

    guys 我正在开发一个应用程序 并通过单元测试来构建它 但是 我现在处于需要测试异步调用的情况 例如 void testUserInfoBecomesValidWhenUserIsBuiltSuccessfully if userBuil
  • go build 工作正常但 go run 失败

    我在主包的一个目录下有几个文件 主程序 配置文件 服务器 go 当我这样做时 去构建 程序构建完美并且运行良好 当我这样做时 go run main go 失败了 Output command line arguments main go
  • 如何让自托管 signalR 服务器作为 NetCore 控制台应用程序运行

    我想使用 NetCore 在控制台应用程序中创建 SignalR 自托管服务器 我对 Web 开发和 Net Core 完全陌生 但想使用 SignalR 作为基于 Web 的实时协议 不需要网页 所以我想要一个控制台应用程序 我已经成功测
  • 出售苹果股票(一进一出)

    任何人都可以帮我解决我的代码吗 我在卖苹果时遇到问题 它减去我的所有股票 有时当我的输入超过股票时 数字会变成负数 int main void int choice 0 int days 1 i buyApple int stocks 99
  • IntelliJ 中的远程结对编程

    结对编程时有没有办法使用 IntelliJ 如果有 v7 和 v8 的选项就好了 但如果需要的话我会升级到 v9 这个问题有点像this https stackoverflow com questions 926349 remote pai
  • gradle 测试执行时间过长

    我有一个 Spring boot 应用程序 可以在 10 秒内启动 然而 在一个简单的空集成测试中 我的执行时间很糟糕 60 70 秒 使用 IntelliJ 或时也是如此gradle test spring上下文的初始化比手动运行服务花费
  • Elixir + Ecto:不在 [array] 中怎么办?

    我正在尝试寻找所有Users 中没有特定的字符串元素match history场地 我对此进行了猜测 matched user User gt where u device id not in u match history gt limi
  • 如何从 Checkbox.checked 上的 Gridview 获取 Id?

    我有 GridView 和一个按钮 如下所示 然后我将 gridview 与数据库中的数据绑定 GridView 有两个隐藏字段 Id 和 ClassIndex 当我选择一个复选框并单击按钮时 我想获取相应的 ID 和文件名
  • 如何解决 JDK 的这个限制?

    我正在从 Java Collection Framework 中寻找一个不允许 null 元素的类 你认识一个吗 Use Constraints import com google common collect Constraints Co
  • 聊天机器人 - 使用 Facebook 登录为不属于您的页面生成页面令牌

    有谁知道如何在您不拥有的页面上安装 Facebook 聊天机器人 我已经创建了一个聊天机器人并希望允许其他FB页面安装我的聊天机器人应用程序 我可以为我管理的FB页面生成page access token 但是如何获取我不是管理员的FB页面
  • 如何在生产模式下运行 GWT

    我正在尝试按照以下说明在生产模式下运行 GWT 项目https developers google com web toolkit usingeclipse https developers google com web toolkit u
  • 自定义视图组中的视图未显示

    我最近深入研究创建自定义 ViewGroups 并遇到了一个我无法解决的问题 我有 2 个 ViewGroups ViewManager 和 Article ViewManager 只是在上一篇文章下方布置一篇文章 即像垂直 LinearL
  • 向我解释尾部调用优化的重要意义是什么以及为什么 Python 需要它

    显然 对于 Python 是否需要尾部调用优化 TCO 一直存在很大争议 当有人向 Guido 发送了一份 SICP 副本 http drj11 wordpress com 2009 04 30 python tail call optim
  • 是否可以在自定义 AuthorizeAttribute 类中使用 RedirectToAction() ?

    使用 ASP Net MVC 2 有什么方法可以使用重定向到动作 http msdn microsoft com en us library system web mvc controller redirecttoaction aspx的方