问题标签 [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 投票
0 回答
916 浏览

asp.net - 如何在 ASP.NET Web API 应用程序中覆盖 /Token api 调用行为

我有一个 ASP.NET Web API 应用程序,我正在尝试使我的 API 调用安全且仅对注册用户可用。

我知道注册用户可以通过调用 /Token 并发送用户名和密码以及 grant_type 以及请求来获取访问令牌。

我了解这一切都是因为Startup.Auth.cs文件App_start夹中的文件内有以下配置:

通常使用用户名和密码调用 /Token 会搜索默认用户表,如果该用户存在,则它将访问令牌发送给用户。

但是在我的项目中,我有自己的方法/表来注册用户并将它们存储在数据库中。所以我没有使用 ASP.NET Identity 提供的默认用户表。

问题:

我是否有可能以某种方式覆盖/更改对 /Token 的请求的处理方式?所以在那里我可以通过我自己的自定义用户表检查用户名/密码,然后在一切正常的情况下发送访问令牌。

编辑:

我想了一个办法,但我真的怀疑这应该是要走的路。在我自己注册用户的自定义方法中,当一切正常时,我可以调用

现在我的用户也在 ASP.NET 用户表中,随后对 /Token 的调用应该将他们识别为注册用户。但我想现在我已经在两个表中复制了我的用户。有什么干净的方法可以实现我想要的吗?

0 投票
1 回答
233 浏览

asp.net-mvc - MVC 5 Windows 身份验证逻辑

我正在尝试了解如何使用 Active Directory 身份验证创建 MVC5 网站。我也想管理用户。所以为此我在 VS2013 中创建了一个简单的项目并选择了“Windows 身份验证”。当我运行应用程序时,我会弹出身份验证窗口以输入 AD 用户名和密码。之后,它确实在右上角显示“Hello AD/UserName!”。

但我没有看到它实际要求身份验证的逻辑。另外我想将几个 AD 用户保存到数据库中,只允许他们登录网站。我怎样才能做到这一点?另外,我的其他网页将如何知道用户是否已通过身份验证。谢谢你。

0 投票
1 回答
1241 浏览

asp.net-core-mvc - 添加策略的 MVC 6 安全性不起作用

我正在关注此处此处的文档,以采用基于声明的安全方法。文档中的代码无法编译。

在这条线上

我得到一个编译时错误:类型MinimumAgeRequirement中不存在该类型Authorization 这是一个截图。

在此处输入图像描述

在尝试遵循此处更简单的示例时

按 F5 时出现如下错误:

在此处输入图像描述

某处有完整的工作示例吗?文档似乎半生不熟。

0 投票
1 回答
50 浏览

c# - 我可以安全删除默认授权模板的哪些部分?

我想在我的网站上进行最简单的授权,包括用户角色。默认模板对我来说太复杂了。我不需要外部登录和其他东西。我的项目应该包含哪些核心部分?

0 投票
2 回答
411 浏览

asp.net-identity - 保护整个 ASP.NET 5 MVC 6 应用程序

如果我想保护我的 MVC 应用程序中的特定部分,我使用[Authorize]ActionMethod。我也知道我可以将它用于整个控制器,这样我就不必为其中的每个 ActionMethod 指定它。

我想在全球范围内要求授权,并且希望能够只在少数几个地方允许匿名用户。如何要求用户全局授权并允许匿名用户在几个 ActionMethods 中使用?

0 投票
2 回答
617 浏览

asp.net-mvc - WebApi 中的授权

我正在使用 AdminColntroller 构建管理页面(MVC 5):

我想将其实现为单页应用程序,因此我将对管理 Web api 进行客户端 ajax 调用,我还想保护对以下内容的访问:

这是我在管理视图中进行的 ajax 调用:

这会引发错误(fail() 方法):“此请求的授权已被拒绝。” 我不明白为什么 - 我的用户有一个角色 Admin(这就是我什至能够进入管理页面的原因),如果我[Authorize]GetEcho()方法中删除然后在其中设置断点,我会看到正确的 User 对象。任何想法我做错了什么?

0 投票
1 回答
1340 浏览

c# - 在消息处理程序或过滤器中设置 IPrincipal 未正确进入控制器

我有一个 Web API 2 项目,我们正在使用基本授权。客户端在授权标头中发送用户名:密码 - 我们将其提取并连接到 LDAP 服务器以

  1. 验证用户
  2. 验证他们的密码,然后
  3. 从他们的 LDAP 响应中获取一个属性值并将其传递给请求的 IPrincipal。

问题是,当我通过System.Web.Http.ApiController.User.Identity.Name访问控制器中的IPrincipal时,我看到传入的值并不总是正确的!

示例:在消息处理程序或过滤器中,我将 IPrincipal 设置为:

编辑:这是我们在过滤器中设置主体的方式:

在请求的生命周期后期,在控制器中,我尝试像这样访问这个值:

所以这里发生的是我从ApiController.User.Identity.Name获取User.Identity.Name,在负载测试下,我同时发送 2 个线程并行请求 - 当我这样做时,请求对象显示正确URL 中的 ID,但是,过滤器中设置的 IPrincipal 不正确。这是一个具有预期结果的固定测试,所以这永远不会发生。如果它错开电话,问题就不会出现!如果同时发送呼叫,则问题的发生率为 100%。

这是我调用服务的方式:

...

如何访问请求的正确 IPrincipal.User.Identity.Name?

0 投票
2 回答
924 浏览

asp.net-identity - 如果索赔不存在,我该如何重定向

背景故事

在我的应用程序中,一个身份用户与许多组织相关联,每个关联的行为类似于一个单独的“帐户”,但使用相同的登录名。在初始登录时,用户选择他们想要继续使用的帐户,这样做后,我创建一个声明(将任何现有声明擦除到该类型)并设置他们选择的帐户的 ID。

问题

目前我使用策略来检查我的控制器上是否填写了适当的 ID 声明,有什么方法可以使用我的策略将用户重定向到“帐户选择”页面?如果不是,那会被认为是 Asp.net 的方式。我应该检查每个控制器映射的方法吗?

使事情进一步复杂化

我的很多方法都是 Ajax 的返回类型 JSONResult,所以我可以预见自己必须在我的 JSON 中返回一个“直接到”字段,并在 JavaScript 中适当地处理它,如果它存在于响应中,是否有这样做的更好方法?


非常感谢

0 投票
1 回答
1454 浏览

c# - c# HttpWebRequest.GetRequestStream 授权

我有一个带有 Authorize 标签的 Web Api 控制器。 https://msdn.microsoft.com/de-de/library/system.web.http.authorizeattribute(v=vs.118).aspx

我正在使用 HttpWebRequest 对该控制器执行 Post-Request,如下所示:(请注意,我没有提供授权标头来显示我的问题)

问题: 在请求请求流时,我希望得到一个未经授权的异常。但我可以调用 GetRequestStream 甚至写入该流,没有任何问题。只有在调用 GetRespone 时,我才会收到我之前预期的 401(未授权)。

我只是想知道,这是否是预期的行为?如果有任何方法可以改变它。例如,如果我要上传一个大文件,在通知客户端无权这样做之前,所有数据都会被上传。不知何故,这对我来说没有意义?还是我错过了什么?

0 投票
1 回答
40 浏览

c# - 如何实现仅返回用户数据的 WebApi 授权

我正在构建一个 WebApi 项目,我们必须超越简单的角色授权。基本上,登录的用户应该只查看他/她创建的数据。数据可以是图像、帖子、文档等。我查看了 WIF 的声明,但我似乎不明白如何使用它们来实现这种授权。我见过的所有实现几乎都专注于操作授权,而不涉及数据访问部分。我觉得这是所有 API 的常见问题。我该怎么做呢?