Asp.Net 5 (Mvc 6) 中的自定义 ClaimsPrincipal
Custom ClaimsPrincipal in Asp.Net 5 (Mvc 6)
如何在 Asp.Net 5 (MVC-6) 中覆盖 System.Security.Claims.ClaimsPrincipal
类型的默认值 Context.User
?
我想使用我的自定义用户类型,以便它可以在控制器 (HttpContext.User
) 以及 Razor 视图 (@User.
)
中访问
非常感谢任何帮助。谢谢!:)
基本的答案是不要 - 尝试实现自己的安全代码通常不是一个好主意;有很多选项可以在前期为您节省大量时间,在后面也可以为您省去很多麻烦。
另一个答案是你不能 - 它内置在新框架中 from the beginning.
这就是用户 POCO 模型的用途。 Identity 框架就是以这种方式运作的(我认为从一开始),它反映了 OAuth 和大多数其他 authentication/authorization 系统。这是一个非常灵活和高效的模型。
相反,我建议做的是构建您自己的 ClaimTypes
并在 ones built in to the framework. 之外使用它们,具体取决于您对用户进行身份验证的方式,您应该能够在以下时间添加它们无论如何,你会创建 IPrincipal
。
简答 - 在中间件中将自定义 .User
分配给 HttpContext
。
长答案:
如何在 Asp.Net 5 (MVC-6) 中覆盖 System.Security.Claims.ClaimsPrincipal
类型的默认值 Context.User
?
我想使用我的自定义用户类型,以便它可以在控制器 (HttpContext.User
) 以及 Razor 视图 (@User.
)
非常感谢任何帮助。谢谢!:)
基本的答案是不要 - 尝试实现自己的安全代码通常不是一个好主意;有很多选项可以在前期为您节省大量时间,在后面也可以为您省去很多麻烦。
另一个答案是你不能 - 它内置在新框架中 from the beginning.
这就是用户 POCO 模型的用途。 Identity 框架就是以这种方式运作的(我认为从一开始),它反映了 OAuth 和大多数其他 authentication/authorization 系统。这是一个非常灵活和高效的模型。
相反,我建议做的是构建您自己的 ClaimTypes
并在 ones built in to the framework. 之外使用它们,具体取决于您对用户进行身份验证的方式,您应该能够在以下时间添加它们无论如何,你会创建 IPrincipal
。
简答 - 在中间件中将自定义 .User
分配给 HttpContext
。
长答案: