问题标签 [iprincipal]

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

security - 当前用户是 LocalSystem 检查?

很容易确定运行我的 C# .NET 4.0 控制台应用程序的用户是否是本地管理员组的成员。我也在尝试确定它是否在 LocalSystem 下运行。最好的方法是什么?

0 投票
6 回答
10244 浏览

c# - 如何在 ASP.NET MVC 中更轻松地访问我的自定义 IPrincipal?

我编写了一个自定义主体对象,其中包含一些附加字段(除了用户名之外的电子邮件和用户 ID)。

为了访问这些属性,我必须将 Context.User 对象转换为我的自定义主体。

这个自定义主体是通过我的 global.ascx 中的 Application_AuthenticateRequest 创建/反序列化的。您可以查看我在此处询问的这个问题以获取更多信息。

但是,如果用户未通过身份验证,那么我对 CustomPrincipal 的转换将失败(因为它不会被注入到上面的方法中)并且 (User as CustomPrincipal) 的结果将返回 null,从而给我一个 null 引用当我上面的方法尝试获取电子邮件时出现异常。

什么是这个问题的干净解决方案?我想让访问我的自定义主体变得容易,并且必须执行以下操作似乎很麻烦:

这是处理这种情况的唯一方法吗?

0 投票
1 回答
6959 浏览

c# - 在 ASP.NET MVC 中使用表单身份验证的自定义 IPrincipal

这应该很简单,但我在谷歌搜索之后根本无法弄清楚。这就是我想要的。我有一个要授权的自定义用户表(目前没有角色)。为此,我必须实现一个我已经完成的自定义成员资格提供程序。我的问题是,如何将自定义 IPrincipal 设置为 HttpContext.Current.User?那应该发生在哪里?假设我有以下设置:

然后我有一个自定义用户类的工具IPrincipalIIdentity

所以我的问题是,将 Context.User 设置为此自定义用户的实例的正确位置在哪里?我需要自定义授权属性吗?如果是这样,那会是什么样子?

0 投票
0 回答
228 浏览

asp.net-mvc-3 - ASP.NET 自定义 Pricipal 和 Cookie(票证)

如果我创建一个具有五个自定义属性(例如 phoneNumber)的自定义主体,主体数据是在 cookie 中传输还是保留在服务器中?

0 投票
1 回答
1977 浏览

asp.net-mvc-3 - MVC3 + Ninject:注入用户 IPrincipal 的正确方法是什么?

我已经看到以下两个注入 User IPrincipal 的示例:

方法一:

方法二:

两者有什么区别吗?是首选吗?

0 投票
2 回答
12408 浏览

c# - 基本控制器 ASP.NET MVC 3 中的这个自定义主体是否非常低效?

尽管我已经在这里待了一段时间,但这是我关于 SO 的第一个问题,所以请对我温柔一点。

我正在使用ASP.NET MVC 3并且我想创建一个自定义Principal,因此我可以存储比标准更多的有关当前用户的信息,因此不必经常访问数据库。这是我所追求的相当标准的东西。让我们首先说电子邮件地址和用户 ID。

我决定将对象存储在缓存中,因为我知道不建议将其存储在会话中。

我也不想继续投射User对象,所以我想覆盖User控制器中的对象。所以我可以去User.UserId保证一些事情。

所以我创建了一个这样的自定义主体:

我有一个这样的基本控制器:

如果你看一下,你会很快意识到如果用户没有登录,那么对对象的任何调用User都必须通过这段代码运行:

这对我来说效率非常低,尽管它只是为丢失的东西创建空对象。

它工作正常。

所以我想我想知道这是否真的可以,我应该停止对性能和效率如此敏感,或者我的恐惧是否正确,在这种情况下我应该做什么?[请不要说“获得生命,伙计!”]

0 投票
2 回答
2943 浏览

c# - 针对 ActiveDirectory 进行身份验证

我做了一点谷歌搜索,我遇到了这个有前途的代码

userName 被初始化为 Windows 登录名。它也是一个字符串 tb.Text.ToString() 是用于输入密码的文本框

更新了代码,它正在工作。谢谢大家

MSDN说 PrincipalContext 可以使用两个参数

0 投票
1 回答
1898 浏览

wcf - WCF CustomRoleProvider 和原则权限

编辑:我认为该问题可能与以下问题有关,因为一旦 WCF 服务移至 SSL ,我也在使用 SSL PrincipalPermission.Demand() 失败

我正在开发一组安全的 Web 服务,我已经实现了 CustomRoleProvider 和 CustomMembershipProvider 以对用户进行身份验证。

这很好用,但是如果用户未通过身份验证,我想限制对大多数服务调用的访问。

我计划使用以下内容来完成此任务

但是,这似乎没有检测到用户何时通过身份验证并且总是引发安全异常。我不确定我做错了什么。

在我的身份验证服务调用中,我检查成员资格提供程序是否返回 true 并设置表单身份验证 cookie。

我在我的网络配置中设置了服务授权,如下所示:

任何帮助将不胜感激,谢谢

编辑:

我对该问题进行了进一步调查,发现 Principal 设置正确。我有以下服务方法,在其中我得到了委托人并检查用户是否处于正确的角色,有效地执行标签在开始时所做的事情。

此方法当前每次都会引发 SecurityException,但是如果我在开始时注释掉主体权限,则该方法将起作用并返回 true。

0 投票
1 回答
1668 浏览

asp.net-mvc - 您可以将 RolePrincipal 包装在自定义 IPrincipal 对象中吗?

我在带有表单身份验证的 ASP.NET 框架内使用自定义成员资格和角色提供程序。这些工作很好。角色提供者使用 cookie 来持久化角色,从而在每个 Web 请求上保存到数据库的行程。我还在 FormsAuthenticationTicket 中使用 UserData 字符串来存储 UserId。

我需要将我的 DAL 从 Web 项目中重构为自己的项目。DAL 依赖于检索当前用户的 ID 以及检查角色的权限。我的身份验证系统应该如何更改,以便我可以使用 Thread.CurrentPrincipal 而无需在 DAL 项目中引用 System.Web?

目前,Provider Framework 创建一个 RolePrincipal 和 FormsIdentity 对象并将其附加到 Thread.CurrentPrincipal。

我考虑过在 Application_PostAuthenticateRequest 事件期间围绕 RolePrincipal 创建一个自定义 IPrincipal 包装器。在这种情况下,我可以从 FormsAuthenticalTicket 中获取 UserID,并将其与 RolePrincipal 一起传递给这个新的 wrapperPrincipal。

这是一种有效的方法吗?我最终会因为弄乱 Provider 结构而在项目中导致一些问题吗?

谢谢你,基思

0 投票
1 回答
722 浏览

asp.net-mvc - 实施 IPrincipal 的问题

尝试实现 IPrincipal (ASP.NET MVC 3) 并遇到问题:我的自定义 IPrincipal:

要序列化/反序列化,我使用以下类:

应用程序身份验证事件如下(工作正常!)

正如您在最后一条语句中看到的,HttpContext 被分配了这个新的 DealsPrincipal(工作正常)。

问题是,如果想在 Controller(Action) 中访问此用户,我总是会得到一个基类对象。如果我按如下方式投射用户:

获取例如 UserId(示例:

这总是空的!为什么?我错过了什么?