当前位置: 首页 > 面试题库 >

您如何处理对返回ViewResult以外的结果的操作的授权?

漆雕兴平
2023-03-14
问题内容

我在ASP.NET MVC控制器上使用了自定义授权过滤器,如果用户在特定操作中未通过授权,则该用户会将用户重定向到除登录屏幕之外的其他URL。

这对于返回视图的操作是可以的,但是我的许多操作都返回其他结果类型,例如PartialResult或JsonResult。

我当前的过滤器如下所示:

<AuthorizeWithRedirect(角色:=“ ServerAccess”,控制器:=“ Home”,操作:=“未经授权”)>

这表示如果用户不具有ServerAccess角色,则应将其重定向到/ Home / Unauthorized /

我很好奇其他人如何处理这个问题?当您考虑仅由客户端脚本AJAX调用调用的操作数时,这似乎特别成问题。/ Home / Unauthorized
/操作如何知道调用者是否打算接收视图,partialview,json,内容等?


问题答案:

我认为您需要通过重定向传递该信息。

您可以通过几种方式处理此问题:

  • 考虑为您需要的每种响应类型制定单独的操作方法-UnauthorizedJson,UnauthorizedHtml,UnauthorizedEtc …与原始操作响应类型相对应

  • 通过将另一个参数添加到Unauthorized方法并将其附加到过滤器中的URL,从而通过重定向传递格式信息



 类似资料:
  • 特别是如果信号处理需要调用一个/一些活动,我如何实现? 我试图返回数据或异常,但它不起作用。 无法从信号方法返回数据。抛出异常将阻止工作流执行。

  • 我使用了以下映射:我修改了英语分析器来使用ngram分析器,如下所示,这样我应该能够在以下情况下进行搜索:1]部分搜索和特殊字符搜索2]以获得语言分析器的优势 将我的数据索引如下:

  • 问题内容: Hibernate API是否以List以外的集合形式支持对象结果集? 例如,我有运行数十万次迭代的过程,以便为客户端创建一些数据。该过程使用“值”表中的记录(例如),以便为每次迭代创建此输出。 对于列表,我必须遍历整个列表才能找到某个值,这很昂贵。我希望能够返回TreeMap并以编程方式指定键,以便我可以在集合中搜索所需的特定值。Hibernate可以帮我吗? 问题答案: 我假设您是

  • 问题内容: 我正在使用具有以下签名的类: 我正试图通过其他班级来称呼它: 但是在这里我得到这个错误: 为什么在Class扩展行中将我指定为第三个参数? 问题答案: 您可以通过对返回的AsyncTask调用AsyhncTask的get()方法来获得结果,但是当它等待获取结果时,它将把它从异步任务变成同步任务。 由于您的AsyncTask位于单独的类中,因此您可以创建一个接口类并在AsyncTask中

  • 我们计划在客户机-服务器模式下使用Infinispan。该架构有许多客户端(客户端1、客户端2等)和分布式infinispan网络。 我们需要定期更新缓存中的数据,比如每5小时更新一次。所有客户端都可以更新数据。如果其中一个(比如客户端1)正在更新,我们需要防止其他人做同样的工作。更新完成后,所有客户端再等待5个小时,其中任何一个客户端都将再次进行更新。 Infinispan为此提供了版本化操作,

  • 本文向大家介绍Android中activity处理返回结果的实现方式,包括了Android中activity处理返回结果的实现方式的使用技巧和注意事项,需要的朋友参考一下 大家在网上购物时都有这样一个体验,在确认订单选择收货人以及地址时,会跳转页面到我们存入网站内的所有收货信息(包含收货地址,收货人)的界面供我们选择,一旦我们点击其中某一条信息,则会自动跳转到订单提交界面,此时的收货信息已经变为我