【问题标题】:Is it possible to Add Claims after PostAuthenticateRequest event executes?PostAuthenticateRequest 事件执行后是否可以添加声明?
【发布时间】:2013-09-26 10:42:24
【问题描述】:

我正在处理这种奇怪的情况。当用户登录时,我只能为 ClaimsIdentity 设置名称声明。然后用户从列表中选择某个诊所。根据选择,我设置了他们的角色声明。但是我注意到 ASP.NET Url Authorization 只是忽略了这些角色声明,因为它们没有在 PostAuthenticateRequest 中设置。是否有任何其他事件可以让我设置这些额外的声明?

【问题讨论】:

  • 你如何“设置”它们?
  • 我在用户从列表中选择诊所时设置角色声明。这发生在 DataGrid.ItemCommand 事件中
  • 你没有回答我的问题。
  • 哦,对不起,我读到了你的问题,我在哪里设置它们。我有一个 ClaimsAuthenticationManager 可以修改传入的主体身份并添加角色声明
  • 对每个请求?在哪个阶段?它们是否保留在身份验证会话 (SAM) 中?

标签: asp.net security wif claims-based-identity


【解决方案1】:

我会采用这种方法。

  1. 将诊所 ID 存储到常规会话
  2. 实施您自己的 ClaimsAuthenticationManager 将检查 对于该 Session 条目,如果存在,则水合物传入 具有新角色声明的 ClaimsIdentity

一旦选择了诊所,您将用户重定向到另一个控制器/操作,并且在下一个请求中,ClaimsAuthenticationManager 将使用新的声明来修改身份,从而为用户提供角色。

【讨论】:

  • 这是我接下来想到的方法。我的问题是我必须在 PostAuthenticateRequest 中设置声明吗?当我在 Page_Load 事件中添加声明时,它们会被 Url Auth 模块忽略。
  • 很遗憾 Session 在 AuthenticateRequest 或 PostAuthenticateRequest 中不可用
  • 你不想使用Session。
  • 你推荐使用什么?
猜你喜欢
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
相关资源
最近更新 更多