问题标签 [asp.net-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 投票
2 回答
1250 浏览

asp.net-mvc - 具有不同角色的多个组织中的用户

我对为网站设置安全性还很陌生,并且在为 .NET MVC 环境中需要的身份验证/授权类型找到正确的架构/设计/模式/最佳实践时遇到了麻烦。我什至不知道该怎么称呼它才能进行更多研究。下面是我需要实现的示例。这个叫什么?(我不认为它是多租户的。)

乔为一家杂货店连锁店的几家商店处理库存。Joe 是商店 A 的库存经理(可以编辑商品),但只是商店 B 的库存文员(仅查看商品),无权访问商店 C。

因此,如果 Joe 尝试编辑 Store A,他应该能够访问ActionResult Editin the ,但如果他尝试编辑 Store B 或 C InventoryController,则应该无法访问相同的内容。ActionResult Edit

对于这种情况,直接的基于身份或声明的授权是不够的(我不认为),但我不知道我需要做进一步研究的设计的“名称”。这种设计叫什么?

0 投票
0 回答
868 浏览

asp.net - 如何阻止对 asp.net 网站中 pdf 文件的读取访问?

我有一个 asp.net 网站,使用 .Net 4.0 和 IIS 7.5,并在应用程序池中使用经典管道模式。

我正在使用表单身份验证,并且网站根文件夹的 web.config 中的授权设置允许所有用户。

在子文件夹的 web.config 中,我正在为该文件夹及其内容设置授权以阻止所有匿名用户。

该子文件夹中有一个 pdf 文件,即使我拒绝匿名用户,我也可以阅读 pdf 文件并下载它。

我正在尝试阻止对 pdf 文件的匿名访问,而我找到的所有关于如何做到这一点的示例都不适合我。

如何阻止匿名访问 pdf、word、excel 和其他文件?

0 投票
1 回答
169 浏览

asp.net-mvc-5 - 在 AspNetUserClaims 中使用 ClaimValue 时是否需要遵循标准?

VS2013、MVC5、VB

包括这里在内的许多帖子都声明声称可以增加授权粒度,而不会导致角色大量扩散。我希望我说的是对的。

我是否正确地认为这只能通过使用 ClaimValue 属性来完成?

即使这不正确,如果使用 ClaimValue 属性,那么在分配 ClaimValue 时必须采用某种方案。是否有使用 ClaimValue 的标准或典型方法?还是我们只是为特定情况设计我们需要的东西?

添加到帖子: 关于上面关于角色的评论:我问这个问题是因为社区中的许多人使用声明作为角色,但这似乎不是 MVC5 中开发声明的初始/主要目的。

所以我应该添加到我的问题中,还问“使用角色声明可以吗?”,或者我应该只是创建一个权限结构,让 MVC 声明设施用于似乎是它的预期目的,即存储身份声明,而不是用于授权。

0 投票
3 回答
3824 浏览

c# - 表单身份验证:如何处理未经授权的身份验证用户

我正在尝试设置一个非常基本的表单身份验证示例。

它正确地将未经身份验证的用户重定向到登录页面,并在提交验证凭据时正确调用:

如果用户是授权部分中指定的用户,他们将获得他们的页面。如果不是,它会将它们弹回登录页面而没有错误。

如何将经过正确身份验证但未经授权的用户重定向到特定错误页面或检测授权错误以在登录页面反弹时显示错误消息?

这是我的 web.config

更新:

根据答案/评论/研究,我有两个可行的解决方案。

  1. 将以下内容放入登录表单的 Page_Load 方法中:

    /li>

或者

  1. 将以下内容放入 Global.aspx 文件中:

    /li>

感谢您为此提供的所有帮助!

0 投票
0 回答
656 浏览

c# - 如何:Active Directory 身份验证/aspnet 身份授权

我找到了很多关于这个主题的信息;但是,在如何实现我的特定场景方面并没有太多。不幸的是,可以这么说,我公司的广告已经怀孕了一半。用户在那里,但仅此而已。

我正在创建一个 Intranet,显然需要对用户进行身份验证,我将使用 Windows 身份验证来执行此操作。但是,由于我的 AD 不包含任何通常在 Intranet 中使用的附加信息(用户的层次结构,即与每个员工相关的经理和部门等),我想使用 Identity 来满足这一需求。尽管我们确实使用了 AD 组,但要获得该设置并希望使用身份而不是 AD 来进行基于角色的授权是非常困难的。

虽然对 Identity 来说相当新,但它很容易弄清楚,而且 Windows Auth 很容易实现。

我缺少的是将两者结合在一起的诀窍。

所以我的方案是 - 使用 Windows 身份验证对用户进行身份验证。一旦通过身份验证,切换到身份以进行基于角色的授权(声明?)和任何其他元数据(例如用户信息或应用程序特定数据)

我看过这个问题,但不确定它是否真的那么简单或者还有更多。而且我不确定它是否真的适合我的场景。这个问题似乎正是我要问的,但没有回应。最后,这个问题似乎更接近我的要求,尽管使用的是会员资格提供者。我猜这可能也是身份的方式?

所以,在我的例子中,我使用的是 Windows 身份验证,所以我不会有登录表单或操作(严格要求不让用户输入用户名/密码 - 它应该是无缝的)。在员工第一次访问 Intranet 的情况下,他们使用 AD 进行身份验证,但是我如何将该用户保存到身份存储?在通过 AD 进行身份验证后将新用户(以前从未访问过 Intranet 的员工)发送到注册页面以确保身份中存在关联记录是否有意义?然后,作为注册过程的一部分,我可以让他们选择他们的部门和经理。在他们注册后,必须进行基于人的验证过程,以确保用户选择正确的部门和经理,但这是我现在最不担心的。

建议、链接或只是一些简单的指导将不胜感激。谢谢你!

0 投票
1 回答
694 浏览

owin - 使用 ASP.NET 标识存储用户名的哈希

我正在编写一个应用程序,该应用程序需要始终从数据库中删除/不存在个人身份信息。鉴于有人可能在他们的用户名中使用他们的真实姓名,并且他们的 AspUserIdentity 记录中可能存在一个电子邮件地址,我决定一种解决方案可能是散列这些值。简单来说:当有人使用用户名登录时,我对他们输入的用户名进行哈希处理,然后查看该哈希是否存在于数据库中;如果是这样,那么我将它们登录。这很容易做到,并且可以通过修改 AccountController 中的 Login 和 Register 方法来正常工作。但现在我不知道输入的用户名......

我可以将用户名存储在会话中,但这似乎很简单。我想做的是更新成功登录后发送的cookie,以使用他们输入的用户名(而不是存储在数据库中的散列值)。这样 User.Identity.GetUserName() 返回纯文本用户名(而不是散列用户名)。对客户来说,这个过程应该是透明的(对我来说也是程序员)。

问题是:如何?最好的地方是什么?当谈到最新的 ASP.NET 身份时,我仍然相对较新。我在 Startup.Auth 中看到有很多与 cookie 相关的有趣内容,但我没有看到任何地方可以在登录时和发送之前修改 cookie 本身。

这一切都在欧文自身的深处吗?

提前致谢,

0 投票
1 回答
42 浏览

asp.net-mvc - About windows authentication

I enabled windows authentication for asp.net mvc project. I'm in company domain, and when I send an get request to server side, I don't see any special stuff like username/pwd in header/body. How does server know who am I? And if I send an ajax call to server, do I need to include username/pwd as part of this call? Please help.

0 投票
1 回答
1612 浏览

c# - ASP.NET Web API 2 中带有 AuthorizationFilterAttributes 的条件 OR

我正在编写一个可由两组用户之一访问的控制器操作;每个组都有自己的AuthorizationFilterAttribute包含自定义逻辑的实现,定义了如何授权组。我希望能够使用条件 OR 来确定至少满足了一个属性授权过滤器。

我希望我能够做这样的事情:

但没有运气!关于如何实现这一点的任何想法?

0 投票
1 回答
91 浏览

asp.net - 获取已设置为自定义授权属性的角色?

我自定义了 Asp.Net 的授权属性,但是当我将属性设置为方法或类时,我不知道如何获取我设置给属性的角色

例如我有这个 CustomeAuthorizeAttribute

但是当我将角色设置为这样的属性时,我不知道如何获取角色

[CustomeAuthorizeAttribute(Roles="admin,super-admin")]

0 投票
2 回答
1988 浏览

owin - 在 OWIN Web API 中使用 Azure AD 身份验证进行自定义授权

我们正在为我们的一个客户端应用程序使用 Azure AD 身份验证。我们希望与它一起实现基于声明的授权。

我们的应用程序设置是与 Web API 连接的基于 Angular 的客户端应用程序(两个客户端服务器都使用 Azure AD 承载身份验证进行保护)。服务器应用程序使用 OWIN 托管。

我们需要在服务器端提供自定义授权。Azure AD 中有一项用于添加用户和角色的规定。然而,这对我们来说还不够。我们的用户管理是通过 AD 和安全组进行的。要获得对应用程序的访问权限,用户需要成为基本组的一部分,并且基于附加组分配更多权限(访问应用程序的特定部分、编辑特定实体等)或直接授予应用程序中的用户。本质上,并非所有用户都会在应用程序中注册,我们可能必须使用图形 API 查询 AD 以检查他们属于哪些所有应用程序特定组。

OWIN 认证和授权模型基于Authentication Server 和Resource server。我们可以根据需要将它们分开。但是,在我们的例子中,我们需要拆分身份验证和授权。当客户端提供不记名令牌时,我们需要验证令牌是否有效,然后向用户配置文件添加声明。我们还需要缓存用户声明,这样我们就不会频繁地访问数据库。(我们的客户端应用程序在一个用户操作中调用多个 Web API。)

Identity 2.0 中的位置在哪里

  1. 我可以验证令牌 &
  2. 插入特定于应用程序的声明

如果我的整个应用程序都围绕用户授权,并且所有查询都需要根据用户可以访问的数据进行过滤,那么哪种设计模式更适合 Web API 应用程序?