问题标签 [authorization]

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 投票
3 回答
3502 浏览

wcf - WCF 中的表单身份验证错误

我们正在连接到关闭匿名访问、打开 Windows 身份验证的 WCF Web 服务。web.config 文件有一个本地用户帐户,用于允许用户和拒绝用户=“?”。

我可以很好地下载和生成服务代理(被提示输入凭据),但是从我的 Windows 窗体项目(即使在传递凭据时),我收到以下错误:

这是我的示例代码:

0 投票
2 回答
486 浏览

asp.net - 可扩展/可重用的授权模型

好的,所以我正在寻找一些架构指导,我的团队有机会使用我们正在构建的新功能重新制定某些决策,我想看看 SO 的想法:-)当然某些事情我们不会改变,所以解决方案必须适合这个模型。也就是说,我们有一个 ASP.NET 应用程序,它使用 Web 服务来允许用户在系统上执行操作。

问题的出现是因为与许多系统一样,不同的用户需要访问不同的功能。一些角色可以访问 Y 按钮,而另一些角色可以访问 Y 和 B 按钮,而另一个角色仍然只能访问 B。大多数时候,我看到这个,开发人员只是把 if 语句混杂在一起来处理用户界面状态。我担心如果不加以检查,这将成为无法维护的混乱,因为除了将授权逻辑放在 GUI 中之外,还需要将其放在 Web 服务中(通过 ajax 调用)以确保只有授权用户才能调用某些方法.

所以我的问题是,如何设计一个系统来减少检查特定角色的随机临时 if 语句,这些语句可以在 GUI/webform 代码和 web 服务代码中重复使用。

为清楚起见,这是一个 ASP.NET Web 应用程序,使用 Web 表单和Script#来实现 AJAX 功能。不要让脚本#让您无法回答,它与 asp.net ajax 没有根本不同:-)

0 投票
2 回答
1837 浏览

asp.net-mvc - How do you restrict access to a certain user using ASP.NET MVC?

So let's say I have an eBay-type application where only the seller can edit his/her listing. How do I go about restricting access to the Edit action based on the Id of the item we're editing and the currently logged in user?

As far as I can tell, the Authorize attribute only allows you to restrict access to controller actions based on whether the user is authenticated or not and their role. Is this simply something that I need to handle manually within the controller?

0 投票
7 回答
95482 浏览

asp.net-mvc - 为什么AuthorizeAttribute会重定向到登录页面进行认证和授权失败?

在 ASP.NET MVC 中,您可以使用 标记控制器方法AuthorizeAttribute,如下所示:

这意味着,如果当前登录的用户不是“CanDeleteTags”角色,则永远不会调用控制器方法。

不幸的是,对于失败,AuthorizeAttribute返回HttpUnauthorizedResult,它总是返回 HTTP 状态代码 401。这会导致重定向到登录页面。

如果用户没有登录,这很有意义。但是,如果用户已经登录,但不是所需的角色,将他们发送回登录页面会令人困惑。

似乎AuthorizeAttribute将身份验证和授权混为一谈。

这在 ASP.NET MVC 中似乎有点疏忽,还是我遗漏了什么?

我不得不煮一个DemandRoleAttribute将两者分开的。当用户未通过身份验证时,它会返回 HTTP 401,将其发送到登录页面。当用户登录但不是所需的角色时,它会创建一个NotAuthorizedResult。目前这会重定向到错误页面。

当然我不必这样做?

0 投票
4 回答
5149 浏览

rest - 授权 REST 请求

我正在开发一个有一些要求的 REST 服务:

  1. 它必须是安全的。
  2. 用户不应该能够伪造请求。

我目前提出的解决方案是有一个看起来像这样的自定义授权标头(这与亚马逊网络服务的工作方式相同):

我的问题是如何形成签名。当用户登录服务时,他们会获得一个密钥,他们应该能够使用它来签署请求。这将阻止其他用户代表他们提交请求,但不会阻止他们伪造请求。

将使用此服务的应用程序是一个 iPhone 应用程序,所以我想我们可以在应用程序中嵌入一个公钥,我们可以用它来做一个额外的签名,但这是否意味着我们必须有两个签名,一个一个用户密钥和一个应用程序密钥?

任何建议将不胜感激,我很想第一次就做到这一点。

0 投票
3 回答
272 浏览

security - 用户访问检查特定数据库对象或记录的权限

我正在与开发人员就用户登录并访问 Web 应用程序中的文档的情况进行友好的辩论。当我们加载文档供用户查看时,我们有会话中的 userID 和可能通过 QueryString 传递的 documentID。

为了防止用户修改 QueryString 上的 documentID,我建议加载文档的存储过程将 UserId 作为参数来验证对文档的权限。

我的开发人员朋友建议我们在页面前面运行一个单独的过程来确定对文档的访问权限,并在应该显示文档时运行一个过程来抓取文档。

我们错过了什么吗?哪个最有效和最安全?我认为将带有 DocID 的 UserId 传递到一个过程调用中以检查权限并提取文档是一种更有效的解决方案。

0 投票
3 回答
463 浏览

asp.net - ASP.NET Web 应用程序的身份验证系统?

我有一个问题:

如何制作基于角色的 Web 应用程序?比如在论坛站点中,有很多用户类型,admin、moderator 等等……这些用户类型的角色是存储在数据库还是 web.config 中的?而当一个用户登录到我们的站点时,如何控制这个用户的角色呢?简而言之,我想了解授权和身份验证。

谢谢..

0 投票
3 回答
2083 浏览

ruby-on-rails - 为 Web 应用程序实现细粒度授权的最佳方式?

我正在开发一个 Rails Web 应用程序,目前有大约 20 个用户正在使用它。

应用程序的某些部分只能由某些用户访问,因此我们已经有了一个基本的授权框架,我使用acts_as_authenticated 插件实现了它。

用户的权限取决于他们在哪个部门工作,例如管理可以访问应用程序的所有部分,而会计只能访问与会计相关的部分,而销售只能访问与销售相关的部分等。

另一方面,用户会看到指向他们没有足够权限的操作的链接。例如,销售部门的人员在主菜单中看到一个指向财务记录的链接,但当他们单击它时,什么也没有发生。之所以如此,是因为 AFAIK 没有使用acts_as_authenticated 查询用户权限的有效方法。

我想通过两种方式改变它:

  1. 我想引入更细粒度的授权。目前,授权是在控制器级别完成的。我想在动作或模型级别执行此操作。例如,我希望销售部门的人员能够创建和更新付款,但不能删除它们。

  2. 我希望能够有效地查询用户权限,这样我就可以从界面中删除不必要的(和令人困惑的)链接。

你认为最优雅的实现方式是什么?

不需要特定于 Rails 的答案,我只想知道如何在数据驱动的应用程序中实现这一点。

最后,这是它目前的实现方式:

这是我最初的想法,我认为这不是解决这个问题的最佳方法:

或者

0 投票
2 回答
1078 浏览

asp.net-mvc - 如何允许使用 ASP.NET MVC 对 rss 提要进行授权?

我们的商店正在将我们的内部项目管理应用程序从 ASP.NET Web 窗体转换为 ASP.NET MVC。

我想为我们的客户提供他们当前未解决的问题的 RSS 提要……但我想通过某种类型的授权来这样做,例如登录名和密码。

这可能使用 ASP.NET MVC 还是应该通过 WCF 等其他服务来完成?示例代码将不胜感激

0 投票
2 回答
783 浏览

.net - 在 .NET 中使用 NHibernate 时如何处理授权

我正在使用存储库模式使用 NHibernate 查询我们的数据库。它使执行以下操作变得非常容易:

公共 T GetById(int id) {...}

但是当有人开始使用查询字符串来查看他们不允许看到的东西时,这并没有多大帮助。

为了复合它,一些对象是应该对其执行授权的父对象的深层嵌套子对象。

例如博客 --> 作者 --> 帖子 --> 评论。在这个人为的示例中,我们希望作者能够编辑他们自己的帖子和对这些帖子的评论,但不能查看或编辑其他作者的帖子。检查帖子属于作者很容易,确定评论属于作者就有点困难了。我们有一些更深入的例子。

那么......我们如何进行授权(在模型或存储库中)?