问题标签 [iidentity]

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 回答
62 浏览

c# - 将对象附加到逻辑控制流的最佳方式是什么?

我需要使对象静态可用于:

(1) 我的程序正在运行的当前线程 (2) 该线程启动的所有线程 (3) 该线程排队的所有线程池任务

我想出的一种方法是使用 ConditionalWeakTable keyed on Thread.CurrentPrincipal.Identity,因为该对象(设置时)似乎由 .NET 框架适当地传递。但是,我想知道(1)这种方法有什么限制/问题吗?(2) 是否有另一种更简洁的方法来解决已经内置于 .NET 框架中的这个问题?

0 投票
1 回答
2800 浏览

.net-4.5 - 您如何在可移植类库中使用 IPrincipal 和 IIdentity?

在 WIF(Windows Identity Foundation)4.5 中,Microsoft 创建了WindowsPrincipal该类,它是ClaimsPrincipal. 当然,这些类是不可移植的,但它们背后的接口是 ( IPrincipal)。实现接口的ClaimsIndentity类也是如此。IIdentity

我遇到的问题是这些类和 WIF 通常完全基于“声明”的概念,这太棒了……但是这两个接口IPrincipalIIdentity没有。不仅如此,ClaimsPrincipal该类还具有一组身份,而不仅仅是与其关联的单个身份。

  • IPrincipal 拥有IdentityIsInRole成员。
  • IIidentity 有AuthenticationTypeIsAuthenticatedName成员。

鉴于可移植类库只能访问这两个接口这一事实,如何获得实际声明?

此外,在主体具有多个身份的罕见情况下,如何获得“非主要”身份?

0 投票
1 回答
2597 浏览

c# - WCF PrincipalPermission 授权

我正在尝试在每个 wcf Web 方法上设置角色授权。

也许我做错了什么,但我无法获得授权。

我有一个 UserNamePasswordValidator 授权用户访问该服务。

然后授权策略获取用户角色并根据评估上下文设置主体。我已经用 GenericPrincipal 和我自己的 CustomPrincipal 进行了尝试。

但是,无论角色如何,始终执行 Web 方法。

授权策略

PrincipalPermission 如何链接到主体?

我的 CustomPrincipal 有一个 IsInRole 方法,我应该做其他事情来确保 PrincipalPermission 验证角色吗?

0 投票
2 回答
1375 浏览

c# - 有没有办法将用户信息传递给 IIdentityValidator?

我正在开发一个自定义密码验证,它将进行大量额外检查,理想情况下包括用户尝试创建的密码不包含其用户名的任何排列。

我们正在使用身份框架,我的初衷是像这样扩展 IIdentityValidator:

但这只能将字符串作为每个 UserManager 的参数。有没有办法在这里拉入用户名/自定义对象,或者在持久化信息之前将密码字符串与用户名进行比较?

编辑

对于上下文,这是设置和使用密码验证器的方式。

用户管理器:

用户创建:

0 投票
4 回答
24990 浏览

c# - .NET 中 IIdentity 和 IPrincipal 背后的想法是什么

那么,存在IIdentityandIPrincipal而不是 some的目的是什么IIdentityMergedWithPrincipal?什么时候在同一个类中实现两者还不够?

另外,为了理解目的,我想知道这个概念来自哪里:

  • 它起源于.Net
  • 有 Identity/Principal 作为设计模式的概念,System.Security.Principal在这些接口中实现
  • 它起源于其他地方并支持兼容性

因此,UserPrincipalfrom 的System.DirectoryServices行为类似于IPrincipal但不是出于偶然或有意而为?

PS我正在寻找想法背后的推理,而不是利益/争议比较,所以请尽量不要开始基于意见的讨论

0 投票
1 回答
629 浏览

c# - 用户类是否应该实现 IPrincipal 和 IIdentity

我正在为 asp.net web api 2 构建我自己的基于令牌的身份验证,我对这个类有疑问user

目前我的user班级实施IPrincipaland IIdentity,但我不知道最佳实践是什么。你会划分IPrincipal并使实现IIdentity成为其中的IIdentity一员IPrincipal吗?

目前我使用以下类声明

谢谢!

0 投票
1 回答
651 浏览

c# - 从 WCF 服务获取自定义“IIdentity 和 IPrincipal”客户端

我有一个名为MyIdentity的自定义 IIdentity 和一个名为MyPrincipal 的自定义 IIprincipal。这些类用于三个不同的项目:

  • ASP.NET MVC
  • ASP.NET Web 窗体
  • Windows 窗体

这三个项目从 WCF 服务获取信息。

在 WCF 服务中是否有可能在调用时获得自定义 IIdentity ( MyIdentity ) 和自定义 IIPrincipal ( MyPrincipal )?

0 投票
1 回答
1798 浏览

asp.net - 什么是 User.Identity.Name 和 User.Identity.IsAuthenticated?

我想知道用户身份名称是什么设置并更改isAuthenticated为true。

为什么是User.Identity.Name一个空字符串,User.Identity.IsAuthenticated false之后SignInManager.PasswordSignInAsync又返回了Success

0 投票
1 回答
929 浏览

asp.net - 从 IHttpHandler 获取 Owin IIdentity

接受的答案说明:

虽然我很感激创建自己的 OwinMiddleware 以在进行一些检查而不是 IHttpModule 后发送图像的帮助,但这并不能完全解决问题。

问题是我在 ajax 请求中添加了一个 Authorization 标头,并且在该标头中我正在发送我的 Bearer's Token,以便我可以从 Owin 获取记录的用户信息。所以我必须将此标头添加到图像请求中,以便能够从图像处理程序中间件获取记录的用户信息。


原始问题:

我正在关注这篇博文,为我的 Web 项目创建基于令牌的身份验证。因为我的 Web API 的一些资源将被本地移动客户端使用。而且我听说基于令牌的身份验证是实现这一目标的方法。在我自己的项目中,我有一个自定义图像请求处理程序。并且需要在这个处理程序中记录用户信息。但是当我尝试从票证中提取用户信息时,我得到了空值。我对此不确定,但是,我想我这里有 2 个不同的 IIdentity 对象,我需要存储在 Owin Context 中的那个。

这里让我给你看一些代码;

我的 GrantResourceOwnerCredentials 将声明存储到 ClaimsIdentity,

从给定的 IIdentity 对象中提取用户 ID 的辅助函数

现在我可以从我的控制器中获取 loggedUserId,例如,

但是如果我从我的 IHttpHandler 调用它,我会得到空值,

希望我没有把这件事搞砸……

解决方案:

在进行了一些检查后,我已经实现了自己的中间件来为我的用户提供图像。这是我的 Invoke 任务实现。其他一切都与已接受答案中的建议一样。但如上所述,为此,我必须发送带有授权标头的图像,否则loggedUserId 将再次为空。

0 投票
1 回答
1722 浏览

asp.net - 覆盖 HttpContext.Current.User.Identity.Name

我正在尝试连接到 Web 窗体 ASP.NET 管道并以属性返回自定义实现HttpContext.Current.User.Identity的方式扩展它。Name

在另一个答案中发现的一种可能方法是可以通过添加声明来添加新属性。我的两个问题是:

  1. 在 ASP.NET Web 窗体管道中的何处添加声明?和
  2. 是否可以覆盖现有Name属性?