问题标签 [authorize-attribute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6234 浏览

c# - MVC 框架未调用自定义 AuthorizeAttribute

我一直在互联网上试图找出为什么我的自定义 AuthorizeAttribute 在我的 MVC WebApi 中不起作用。我见过有人在 SO 上询问这种事情,但没有什么能帮助我解决我的问题:

System.Web.Mvc从而不是扩展System.Web.Http。但是,我AuthorizeCore(HttpContextBase httpContext)的从未被调用。

我的CustomAuthorization类中有一个构造函数,它接受params string[]一个特定操作所需的自定义权限的名称,例如:

我希望实现的是,每当对使用该[CustomAuthorization]属性装饰的操作发出请求时,都会触发我的授权代码。如果授权失败,我还希望能够返回更具描述性的身份验证失败消息。不只是:

我相信这涉及到覆盖HandleUnauthorizedRequest,但我怎样才能提供我自己的 JSON 响应将序列化的对象?

总而言之,即使我用我的[CustomAuthorization]属性装饰动作,框架也不会调用我的授权代码。它只是直接执行动作中的代码。

其次,如何实现未经授权的响应来序列化自定义 JSON 对象?

提前感谢您的帮助,非常感谢!

0 投票
1 回答
62 浏览

asp.net-mvc - 在控制器上获得自定义授权后公开访问一项操作?

我正在使用 MVC 3 并在我的控制器上具有继承 AuthorizeAttribute 的自定义授权属性。但是,在一种情况下,我想从该控制器访问一项操作,而无需对其进行任何身份验证。是否可以?

我想在控制器文件中不做任何更改,因为该代码已经在生产中。有没有办法从网络配置中覆盖。

0 投票
1 回答
1211 浏览

asp.net-mvc-3 - MVC 配置授权角色值和强类型角色

为了为特定角色授权控制器,控制器类需要以下属性:

这需要在 Controller 上硬编码角色名称,这似乎不是一个灵活的解决方案。我的问题是,是否可以在 web.config 中为该角色指定值并在控制器中使用该键?

在控制器中,

另一个问题是,我们可以使用强类型角色来授权控制器吗?

0 投票
4 回答
77044 浏览

asp.net-mvc - Asp.net MVC4:对控制器和操作进行授权

如果我在控制器和操作上都有 Authorize 属性,哪个会生效?还是两者都会生效?

0 投票
1 回答
202 浏览

asp.net-mvc - 如何使用 AuthorizeAttributes 从我的控制器重定向?

我做了一个AuthorizeAttributeBaseto extend AuthorizeAttribute。它看起来像这样:

我保留允许的角色名,如下所示:

并像这样使用我的基地:

最后但并非最不重要的控制器:

现在我想做的是在AuthorizeAttributes 的基础上使索引开关返回值。让我们说教师对TeachersIndex()和管理员对AdministratorsIndex().

我尝试将其添加到基础:

但我最终不得不AutorizeAttribute每次都创建新的。让它static似乎给我带来了更多的问题。

有没有正确的方法来解决这个问题?


解决了。:)OnAuthorization覆盖让我有了新的线索。发现了这个问题

我将重定向放在 a 中,Dictionary<string, RedirectToRouteResult>因为我喜欢将所有角色字符串保存在一个地方而不是用魔术字符串填充我的控制器的想法。

现在override HandleUnauthorizedRequest看起来像这样:

0 投票
1 回答
639 浏览

cryptography - 加载 X509Certificate2 时用户已注销

在我的购物车控制器中,我强制用户使用控制器类上的 [Authorize] 属性登录

他们登录没问题。他们遍历 CartController 中的几个页面,然后到达应该显示 PayPal 按钮的支付网页。PayPal 按钮是一个 HTML 表单,其中内容由收件人的公共证书(PEM 格式)加密,我加载 PKCS12 证书,其中包含签名者的公共证书和私钥。这在我的本地主机开发机器上完美运行。

问题:

当我把它放在我的网络主机(Arvixe)上,并尝试做与上面完全相同的事情时,当我进入支付页面(生成 PayPal 按钮)时,它会搅动很长时间。大约 40 秒后,我被重定向到我网站的登录页面。当我调用上面的函数时,我似乎(无缘无故地)使用重定向 URL http://www.mysite.com/Account/Login?ReturnUrl=%2fCart%2fPayment注销,然后给我这个堆栈跟踪错误:

所以我从我的 CartController 中删除了属性标签 [Authorize] 来看看会发生什么。我导航到 CartController 中将生成 PayPal 按钮的网页。大约 5 秒后,我得到以下堆栈跟踪。然后,如果我导航到需要授权的网站的另一个部分,它会强制我登录。这个功能在不应该的时候让我退出或失去我的会话。你知道为什么当我调用上述函数时会导致这种奇怪的行为吗?你知道修复吗?

笔记:

  • ASP.NET MVC 4.5 C#
  • 视觉工作室 2012
  • 项目清单
  • 在我的 SQL Server 2012 数据库上使用 Microsoft 的内置登录平台。
  • 在我的虚拟主机上,我可以公开访问 PEM 和 PKCS#12 文件没有问题。所以这似乎不是权限问题。

对于上面的证书功能,我使用 - System.Security.Cryptography.Pkcs; - System.Security.Cryptography.X509Certificates;

这是堆栈跟踪:

我的网络配置文件:

0 投票
1 回答
4651 浏览

c# - 未调用自定义 AuthorizeAttribute

有很多类似的问题,但这让我很难过。

如果我使用 [Authorize] 会提示输入用户名和密码,但如果我使用 [InternalAuthorizeV2] 我不会

我有一个自定义的 AuthorizeAttribute ,目前它没有做任何特别的事情(我限制了可能出错的事情)。

和我的控制器中的一个动作

登录在不同的应用程序中处理,但它们具有相同的 Web 配置行

我知道,如果我通过使用 [Authorize] 进入页面登录,然后返回我的问题页面,我可以看到用户名,但它似乎没有调用我的客户属性。

新信息: 我的属性位于共享 DLL 中,因为它被许多应用程序使用。看来,如果我将 cs 文件复制到 web 项目,它就可以工作。不知道为什么,仍在寻找提示或提示。

0 投票
1 回答
434 浏览

asp.net-mvc - 我应该为 Authorize 属性覆盖哪些成员资格和角色提供者方法?

要使用[Authorize], [Authorize(Roles="")],[Authorize(Users="")]属性,我应该在 MembershipProvider 和 RoleProvider 中重写哪些方法?

任何建议,文章,教程?

0 投票
2 回答
3648 浏览

authentication - 如何在 asp.net mvc + Forms 身份验证中对 ajax 请求进行身份验证

我是 MVC4 的新手。我正在使用 ASP.net 表单身份验证。在所有页面加载中,我都能够处理身份验证和授权。

我在部分视图的情况下使用 Ajax 请求并返回一个对象。

在部分视图的情况下,我可以通过遵循此检查 Ajaxrequest 来找到管理

如果对象返回,如何处理所有 ajax 请求的身份验证?

我的最终目标是暗示您的会话超时或至少重定向到登录页面

0 投票
1 回答
1329 浏览

asp.net-mvc - Redirect to a certain view in AuthorizeAttribute?

In my AdministratorController I have an action with custom attribute:

The attribute is:

It correctly shows me the view that I need: ~/Views/Main/Index.cshtml But in my browser URL is still from Administrator controller: .../Administrator/Index How can I redirect to the View that I need, so that URL would also change?

Thanks a lot in advance!