问题标签 [principal]

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

asp.net - 角色、成员资格、配置文件、主体和表单身份验证

我正在尝试使用自定义 sql 成员资格和角色提供程序来保护 Web 应用程序的关系和层次结构。我对表单身份验证、主体等有点模糊。所以 -

web.config 设置为使用自定义成员资格提供程序和自定义角色提供程序进行表单身份验证。

当我的虚构 Web 应用程序启动时,它会使用来自我的自定义会员提供程序的方法验证来自数据库的用户登录。

在这一点上,我假设它将 providerUserKey 粘贴到一个主体对象中,该主体对象在 cookie 中存储、加密?

如果我想在每个页面中包含有关用户的其他信息,例如现有系统中另一个表的外键 (ID),那么保存它以避免往返数据库的最佳方法是什么?

我是否扩展主体以包括这个额外的字段?我是否扩展成员资格对象以包含此额外字段?我是否创建自定义配置文件提供程序并使用它来存储额外字段?

所有这些可识别的信息都存储在哪里?我曾假设用户登录后,无需数据库往返即可访问自定义配置文件提供程序。

0 投票
1 回答
6053 浏览

c# - 如何在 Windows 窗体应用程序中获取 VPN 用户的当前用户身份?

我们目前正在开发一个 Windows Smartclient,它需要使用其 AD 组成员身份对用户进行身份验证。

我们现在要求一些用户通过 VPN 连接。有什么方法可以从 VPN 登录中获取 AD 帐户身份和组?

WindowsIdentity.GetCurrent() 返回本地用户帐户而不是他们的 VPN 帐户信息。

本地帐户名称与用于 VPN 连接的 AD 帐户名称不同。即用户在他们的家用电脑上,并使用他们的工作 AD 帐户连接到办公室。

0 投票
3 回答
12851 浏览

asp.net - 如何设置 Thread.CurrentPrincipal 以在整个应用程序中使用?

在一个 ASP.net 应用程序中,我正在使用带有我编写的自定义成员资格提供程序的登录控件。我想要做的是Thread.CurrentPrincipal在用户通过身份验证后设置为我的自定义 Principal 对象。

我正在使用 setter:Thread.CurrentPrincipal它为我设置了 Principal 对象,但是在所有后续线程上,此 CurrentPrincipal 被默认值覆盖。

这是登录控件的身份验证事件的代码:

例如,假设我使用用户名 A 登录,一切顺利......验证通过,但我在 Identity 对象中使用用户名 B 对用户进行硬编码,该对象设置为我设置为对象的 PrincipalCurrentPrincipal对象。

当我检查在此方法结束时哪个用户设置为CurrentPrincipal身份时,它说它是用户 B。但是当我加载另一个页面然后检查身份CurrentPrincipal是什么时,它说它是用户 A。

那么,如何使我的CurrentPrincipal对象在所有其他线程中持久存在,以及此登录控件在何处/何时设置CurrentPrincipal线程的对象?

0 投票
1 回答
2073 浏览

apache - 使用 mod_jk 进行 Apache 基本身份验证 (basic-auth) 后请求中没有主体

环境

Apache 2.2.13 使用 mod_jk (ajp13) 连接到 Tomcat 5.5。Apache 要求“/”的基本身份验证,即它所服务的所有 URL。

问题

一旦请求到达我在 Tomcat 中的应用程序(它是一个 Servlet 过滤器),就会request.getUserPrincipal()返回 null。然而,Apache 确实验证了该请求。我确实在浏览器的对话框中输入了用户/密码。

有任何想法吗?

0 投票
2 回答
2283 浏览

c# - GroupPrincipal 和 SAM PrincipalContext 无法解释的 InvalidOperationException

我正在尝试创建一个这样的校长:

但是,执行代码时,我收到以下异常消息:

System.DirectoryServices.AccountManagement:属性对此商店类型无效。

如果我设置Description属性,上面的代码工作得很好,只是没有组的描述。

难道我做错了什么?

提前致谢。

编辑: 我相信我已经找到了解决方法(对于任何可能感兴趣的人)。可以通过与上述相同的方式创建组:

现在您创建一个DirectoryEntry并将其链接到新创建的组,如下所示:

这允许访问该组的属性,但我感兴趣的是描述,所以:

那应该这样做。

0 投票
1 回答
6628 浏览

java - Spring安全访问主体

使用 Spring Security 时,特别是使用 @notation;在控制器中访问主体的正确方法是什么?可以说以下是我的控制器,但我想在某处访问 secure() 方法中的主体...

0 投票
1 回答
2934 浏览

wcf - WCF RESTful 服务的基于声明的身份验证

我一直在研究各种示例,以尝试为 ASP.Net Web 服务和 WCF RESTful Web 服务的基于 SAML 令牌的身份验证拼凑一个解决方案......我一直在参考的一些示例:

我一直在努力通过每一个路障,我是如此接近我可以品尝到它。得到我的最新块是这样的:

如果我使用常规 WebServiceHostFactory,则会应用自定义授权策略,并且 Thread.CurrentPrincipal 最终会采用我的 HttpModule 为 HttpContext.Current.User 设置的值......但是......如果我使用 WebServiceHost2Factory(即来自 REST Starter Kit)来获得自动帮助端点等...,然后不应用身份验证策略,并且 Thread.CurrentPrincipal 最终成为 RoleProviderPrincipal 的实例,与我在 HttpModule 中设置的 ClaimsPrincipal 没有任何关系......: -(

任何想法,想法如何让 WebServiceHost2Factory 与自定义/覆盖的主体一起玩得很好?

谢谢,

泰勒

0 投票
2 回答
518 浏览

c# - System.DirectoryServices.AccountManagement.Principal 是否有空 GUID?

我有一种情况,我需要存储一个指向 Active Directory用户帐户的全局唯一标识符。我倾向于Guid因为它比Sid更容易存储。

根据MSDN 条目,如果ContextType设置为“Machine” ,该属性(它是 Nullable)将始终返回 null 。我不需要担心这一点,因为我们的 ContextType 将始终设置为“域”。

我的问题是,如果 ContextType 是“域”,这个属性会返回 null 吗?换句话说,AD DS 商店中的帐户是否总是有一个 Guid?

0 投票
0 回答
234 浏览

.net - 获取 Windows 用户的身份级别令牌?

我想为给定用户创建一个 WindowsIdentity。我不需要它来模拟,只是用于组成员资格检查。我需要它在有和没有域的情况下工作(没有 S4U Kerberos 委托的东西)。采用用户名的 WindowsIdentity 构造函数似乎仅适用于域方案。

有没有其他方法可以获得 WindowsIdentity 来执行访问检查?我最好的解决方法是使用 DirectoryServices.AccountManagement 来查找用户,然后枚举他们的组。

0 投票
2 回答
22271 浏览

asp.net-mvc-2 - 如何在 ASP.NET MVC 中实现自定义主体和身份?

我想在经过身份验证的用户中存储额外的信息,以便我可以轻松访问它(例如 User.Identity.Id),而不仅仅是名称,因为我打算拥有该非唯一信息。

到目前为止,我已经收集到我应该寻求实现自定义主体和/或身份,但我不确定如何去做。我一直在寻找有关此事的文档和教程,但我在不同的地方找到了相关的东西,我发现它有点令人困惑。

我已经看到如何将自定义信息添加到用户数据属性中的身份验证 cookie,但我希望能够从依赖注入中受益,我可以使用主体和身份来进行单元测试。

如果我想实现自己的 Principal 或 Identity,我需要考虑哪些具体步骤?

在这种情况下,我能做的最简单的事情是什么(只需添加 ID 并保留所有默认值)?“默认值”将包括默认提供者(成员资格、角色等)。

我已经看到了另一个问题,但我很欣赏不会在两者之间留下任何漏洞的答案,例如示例中 AuthenticateRequest 事件中的角色魔术字符串。相反,我需要知道如何将默认 SqlRoleProvider 中的角色添加到当前用户:何时何地执行此操作,以及是否需要执行其他任何操作来将我的新类与其他默认提供程序连接起来。

能够转到示例 ASP.NET MVC 2 应用程序(例如,来自 Visual Studio 2010 模板),进行编辑并让它工作,真是太棒了。


编辑:我已经编辑了这个问题,以更好地表明我在这里几乎迷路了,所以我无法应付太高水平的答案。

PS:在我看来,在身份中使用 ID 而不是在主体中使用 ID 更有意义,尽管我之前在某种程度上已经说过这一点。