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

c# - 代码忽略了 PrincipalPermission 属性?

我对所有具有 PrincipalPermission 属性的业务对象都有一个 Delete 方法。

例子:

问题是它似乎完全忽略了我的 PrincipalPermission。它允许任何人通过,无论他们可能担任什么角色。

还有什么我忘了做的吗?我在应用程序启动部分的应用程序的 global.asax 中添加了以下内容:

但这也没有任何区别。

我还尝试了以下方法:

而且你不知道,这很好用!....关于为什么它以一种方式工作而不是另一种方式的任何想法?

0 投票
2 回答
1330 浏览

c# - 在 ASP.NET MVC 中模拟用户进行测试

有没有一种简单的方法可以用具有另一个用户属性的 IPrincipal 替换当前的用户对象(内部控制器)?我正在考虑用户 Windows 身份验证和 AD 组的环境,因此最好复制所有 AD 属性。

“硬”方法是进行 LDAP 查询并实现 IPrincipal 接口,但我想避免这种情况。

0 投票
1 回答
531 浏览

asp.net - 在 .NET 应用程序中替换表单身份验证的方法

我的问题是关于一种方法,我正在寻找帮助我开发解决方案的提示或链接。我有一个 .NET 4.0 Web 表单应用程序,它使用用户和密码的 aspnetdb SQL 数据库进行表单身份验证。该应用程序的一项新功能是使用单点登录的身份验证机制,以允许数千名新用户访问。本质上,当用户通过新的单点登录方法登录时,我将能够将他们识别为具有角色的合法用户。

所以我会有类似HttpContext.Current.Session["email_of_authenticated_user"](他们的身份)和HttpContext.Current.Session["role_of_authenticated_user"](他们的角色)的东西。

重要的是,我不一定想在将要停用的 aspnetdb 数据库中冗余地维护这些用户和角色,但我确实想使用上面的会话对象来允许用户通过应用程序,就好像他们在通过使用表单身份验证。我认为 CustomRoleProviders 或 CustomMemberProviders 没有帮助,因为它们不允许创建会话级用户。

所以我的问题是如何使用我必须“模仿”所有表单身份验证的会话级别用户和角色,例如强制:

或者

感谢您的任何指示。

0 投票
2 回答
2177 浏览

c# - ASP.NET MVC:IPrincipal 如何为空?

我在 IIS6 / Server 2003 上运行一个网站,它在本地 Intranet 上使用集成 Windows 身份验证。我可以浏览到该站点,但在调用以下 C# 代码时会出现间歇性的“Object null”错误,该代码在每个请求上都会调用:

因此,由于错误很明显是间歇性的,Windows Auth 在某种程度上正在工作,但是在网站上导航几次点击后,我得到空引用错误,这意味着 IPrincipal 为空(我认为这在 ASP.NET 中永远不应该为空)。

该错误仅发生在新建的 VM 上。该代码在其他机器上很好,当然在本地开发时也是如此。

IIS 是否请求每个请求的 Windows 身份验证详细信息?什么会导致这种间歇性问题?任何帮助或建议将不胜感激。

0 投票
1 回答
935 浏览

security - MVC2 :: 我如何*使用*自定义 IIdentity 类?

我正在尝试从网络服务中存储有关用户的一整车信息。由于这是有关当前经过身份验证的用户的信息,我认为将这些信息存储在自定义 IIdentity 实现中是有意义的。

自定义MagicMembershipProvider.GetUser(string id, bool userIsOnline)调用 web 服务并返回一个MagicMembershipUser填充了所有字段(部门、电话号码、其他员工信息)的实例。

自定义会员提供者和自定义会员用户都可以正常工作。

将会员用户信息放入每个控制器都可以访问的对象中的最佳方法是什么以及在哪里?IPrincipal User

我一直在尝试用 MVC2 应用程序中的 IIdentity、IPrincipal 和 Role 授权来围绕安全程序流进行思考——但我在这里真的很挣扎,可以使用一些指导。互联网上有大量关于部分的文章,但关于整体的文章不多。

编辑

到目前为止,我最好的猜测是分配HttpContext.Current.Userin FormsAuthenticationService

0 投票
2 回答
2331 浏览

asp.net-mvc - MVC 授权角色和 IPrincipal - 它是如何工作的?

我已经成功地为我的 MVC2 应用程序实现了自定义 MembershipProvider。我有自己的用户表和角色表。

我现在的问题是,当我输入 [Authorize(Roles="blah")] 属性时,它不起作用。我进行了一些搜索,但没有找到我正在寻找的明确答案,即 - 此角色授权如何工作?我的 web.config 使用标准的 AspNet 角色提供程序。

我的理解是我必须让我的 User.cs 类实现 IPrincipal 接口,这意味着,添加代码来检查 IsInRole。

我的问题 - 这是正确的吗?框架如何知道并知道如何获取我的自定义用户对象?我的理解是 Asp.Net 身份验证和授权部分与 MembershipUser 一起使用。

任何提示、想法或链接将不胜感激,谢谢

0 投票
3 回答
2200 浏览

asp.net - 自定义主体在新请求时恢复为 GenericPrincipal

我正在尝试在 .NET MVC 网站中实现自定义主体和自定义标识。我创建了一个继承自 IPrincipal 的自定义主体类和一个继承自 IIdentity 的自定义身份。

当用户登录时,我将 Thread.CurrentPrincipal 和 HttpContext.Current.User 都设置为我的自定义主体。当我通过调试器查看时,值是使用所有属性设置的。

但是,一旦请求完成并且我尝试请求任何其他页面,Thread.CurrentPrincipal 和 HttpContext.Current.User 的类型都是 System.Security.Principal.GenericPrincipal 而不是我的自定义主体。

我需要做任何“额外”的事情来让我的自定义主体脱离线程或 HttpContext 吗?

谢谢

0 投票
1 回答
1488 浏览

c# - 为 asp.net mvc 网站缓存自定义 IPrincipal 的最佳方法是什么?

我已经实现了我设置的自定义 IPrincipal

通过做

但是我的自定义主体会访问数据库并获取有关用户的自定义信息。我不希望它为每个请求重复访问数据库。

缓存它的最佳方法是什么? 我正在考虑将其存储在 Session 中,这是个好主意吗?

编辑:愚蠢的我。会话在这种方法中甚至不可用,应该在发布问题之前进行测试。

但问题仍然存在..

0 投票
1 回答
7264 浏览

c# - 使用自定义成员资格和角色提供者在 MVC 中实现 IPrincipal 和 IIdentity

我坚持自定义 iprincpal 和 iidentity 对象的实现。我现在花了一天的时间来搜索如何实现这些权利并使用更多信息对其进行扩展。

我想@Context.User.Identity.Name使用自定义变量(如全名或其他内容)扩展信息。

编辑:现在我得到了以下代码,但如果我尝试阅读@((CustomPrincipal)Context.User.Identity).Nachname,我会收到一个System.Web.Security.FormsIdentity无法转换为的错误CustomPrincipal

有任何想法吗?

账户模型:

全球.asax:

0 投票
1 回答
2849 浏览

asp.net - User.Identity.IsAuthenticated 有时会返回 false

我使用 asp.net 4.0 和 Form auth。要检查用户是否经过身份验证,我使用 User.Identity.IsAuthenticated。大多数时候它工作得很好,但我不知道如何,有时即使用户有身份验证,它也会返回 false。我的 web.config:

在 global.asax 中:

并在登录页面中:

我也每 5 分钟使用一次 ajax 请求。保持会话活动,这也重置身份验证超时,因为slidingexpiration 值。我不知道它有什么问题。有时在同一会话和同一分钟内,它会为一个页面返回 false,即使它为所有其他页面返回 true。我从来没有遇到过这个错误,但我的访客声称这个问题。