问题标签 [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.
c# - 自定义 IPrincipal 过期问题
我遵循了this question关于如何实现自定义的建议IPrincipal
(我需要将其存储userId
在其中以减少对数据库的调用以获得公正userId
)。
现在,如果我登录到站点并离开它大约 20 分钟,请不要在站点上执行任何操作并刷新页面,它会再次请求登录。
自定义实现的 IPrincipal 是否有一些过期时间,如果它有如何扩展它?
c# - WindowsPrincipal.IsInRole 考虑组内的组?
如果我有一个属于一个组的主体,该组属于一个组,该组属于一个添加到构建它的角色“管理员”的组,是否会调用principal.IsInRole(WindowsBuiltInRole.Administrator)
返回 true?
asp.net-mvc - WebApiController 和 HttpContext.Current.User 中的用户是否不同?
在参考了这篇文章后,我为基本 Http Authentication 编写了一个属性,用于 web api。在属性类中,如果提供的凭据匹配,那么我将 HttpContext.Current.User 设置为
但是,当我在我的 api 控制器中访问 User 时,它没有 apiUser 属性。
为什么会这样,设置身份然后在 api 控制器中访问它的正确方法是什么?
asp.net-mvc - 使用 FormsAuthenticationTicket 存储额外的用户会话对象 - cookie 太大
我正在尝试设置一个 .NET MVC 3 项目来存储自定义用户会话对象(以后可以在其他后续操作中从自定义主体对象访问该对象)我已按照此处的步骤操作: ASP.NET MVC - 设置自定义 IIdentity或 IPrincipal (LukeP 所说的 - 我也需要自定义会员资格等)
在我的登录操作中,我有这样的事情:
它将基本上获取用户对象(provider.GetSession() 从外部身份验证服务返回自定义用户会话对象),然后将其存储在 FormsAuthenticationTicket
问题是来自外部服务的用户会话对象超过 4Kb(大约 7Kb 已加密),并且由于大小,cookie 没有存储在浏览器中。
有没有其他安全的方法可以将此用户会话对象存储在某处,所以我不必继续查询数据库?我听说将它存储在 Session 中是不安全的(因为会话劫持 - 并且它与成员资格分离。) - 那么我还有什么其他选择?
我无法减小自定义用户会话对象的大小——这不是一个选项,因为它的属性依赖于所有系统层调用。
问候,马丁
c# - 从 HttpContext 获取自定义 IPrincipal 时强制转换无效
在研究 FormsAuthentication 几天后,我决定在 FormsAuth cookie 的 UserData 属性中存储一个序列化对象,并为 HttpContext.Current.User 使用自定义 IPrincipal 对象。
我发现的大多数指南都说将 IPrincipal 对象转换为您的对象。不过,我每次都会得到一个无效的演员表异常。我究竟做错了什么?
我的用户数据
CustomPlatformPrincipal
全球.asax.cs
我的页面
第一篇文章如下: http: //primaryobjects.com/CMS/Article147.aspx
所以似乎我可以获得数据的唯一方法是解密 auth cookie,然后反序列化 authCookie 的 userData 字符串。
有什么建议么?
更新
尝试遵循关于这个 SO 问题的建议:在 MVC 中实现自定义身份和 IPrincipal
代码如下,但它不起作用。
asp.net - 覆盖 ASP .NET 自定义主体
我有一些代码在 Application.AuthenticateRequest 处理程序中使用自定义 IPrincipal 设置 HttpContext.Current.User。
这工作正常,我已经验证它在调试器中设置正确......但是,稍后在调用我的 WCF 操作时,HttpContext.Current.User 已被 System.Web.Security.RolePrincipal 覆盖。
我觉得我以前遇到过并解决了这个问题,但不记得它是如何发生的或为什么发生的。
谢谢。
.net - 我真的需要在每个 Principal 上调用 Dispose() 吗?
我正在使用 .NET 的System.DirectoryServices.AccountManagement
命名空间做一些 Active Directory 工作。我注意到Principal
implements IDisposable
,这会引起一些头痛,因为该名称空间中的所有内容都继承了Principal
。
例如,考虑以下代码来获取组中的所有用户:
该片段中的每个类型都实现IDisposable
了 ,包括搜索返回的所有用户和搜索结果集本身。
处理domain
andgroup
对象并不是什么大问题(使用块很容易using()
),但是我该怎么处理每个结果呢?我真的必须遍历该users
集合并处理每一个吗?
c# - 如果我正在验证用户权限,我需要修改代码 - 自定义主体
在我的登录方法中,我使用此代码登录用户:
因为我想在需要时避免数据库调用UserId
以及一些其他数据,所以我做了一些事情,但我不太确定我做对了。
所以这就是为什么我需要有人检查我的代码,它是否安全而不是愚蠢:)
我这样做是否违反了一些规则。
这是我网站安全阶段的最后阶段,因为我不再使用会员/角色。
所以我改变了上面的 SetAuth... 代码:
在我的Global.asax中,我添加了:
自定义主体代码 - 对于问题的主要目标可能并不重要:
c# - 如何在 asp.net 中设置自定义主体
我是网络应用程序的新手。我创建了一个自定义原则并尝试在 CurrentDomain 中设置它。此代码在 WPF 应用程序中完美运行。但在这里它抛出策略异常“默认主体对象不能设置两次。”
我的 CustomPrincple 来自 ClaimsPrinciple
我想知道为什么我不允许在这里设置它。如何在 Web 应用程序中设置我的自定义原则。
authentication - WebApi ActionFilterAttribute、HttpActionContext 访问用户名(IPrincipal)
我需要在我的操作过滤器中访问当前登录的用户。身份由DelegatingHandler
执行链的更上层设置。
我可以IPrincipal
使用HttpContext.Current.User
. _
到目前为止,我避免使用HttpContext.Current
它,因为它在我看来是不好的风格。首先,您的代码只有在 IIS 中托管时才能工作,其次,它包含一个System.Web
我认为不会受到伤害的引用,但System.Net.Http
如果可能的话,我更愿意坚持使用。
光靠老好“ HttpContext
”感觉不对。
有没有其他方法可以访问用户的身份ActionFilter
?或者HttpContext
如果您不打算运行自托管应用程序,是否可以使用?