加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 将错误从HttpModule传递到MVC应用程序

发布时间:2020-12-16 03:15:59 所属栏目:asp.Net 来源:网络整理
导读:我有一个自定义HttpModule用于身份验证.在模块的AuthenticateRequest事件处理程序中,我检查自定义SSO票证是否可用,并在这种情况下执行一些身份验证逻辑. 如果SSO票证可用但不正确,我想向用户显示友好的错误消息.我希望能够以某种方式设置HTTP状态401(未授权,
我有一个自定义HttpModule用于身份验证.在模块的AuthenticateRequest事件处理程序中,我检查自定义SSO票证是否可用,并在这种情况下执行一些身份验证逻辑.

如果SSO票证可用但不正确,我想向用户显示友好的错误消息.我希望能够以某种方式设置HTTP状态401(未授权,在身份验证失败时使用)并从http模块传递有意义的错误消息.

然后,我希望MVC应用程序以某种方式获取此信息,并使用它来呈现自定义401错误页面,其中包含来自模块的有意义的错误消息.

什么是在http模块中引发错误的最佳方法,以及使用MVC应用程序显示错误的最佳方法是什么(在MVC应用程序的布局中获取错误消息)?

解决方法

您可以创建一个自定义controllerfactory,并在您的:

protected override IController GetControllerInstance(RequestContext context,Type controllerType)

您可以通过上下文对象访问HttpContext和RouteData.如果用户未经过身份验证,您可以使用所需的routeconstraints /参数(例如http状态消息)操纵routedata以使您所需的控制器/操作失效.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读