我可以在非核心 .Net 中使用最新的 ASP.Net 标识版本?
我正在尝试实现基于角色的声明,并看到该代码片段:
roleManager.AddClaimAsync(...
我做了一些研究,发现"直接为角色添加声明"是标识核心 ASP.Net 新功能...
目前,我使用的是 ASP.Net Identity 2.x(适用于.Net 4.6)。我有一些选择?.Net Core 的标识核心需求?
最新的非核心身份是 2.2.1,源代码可在 Codeplex 上找到。
如果需要向角色添加声明,则必须自己实现 - 这并不难:您需要添加一个包含声明但引用角色而不是用户的表 - 请参阅现有的 UserClaims 表。
然后,当用户登录时,您必须读取所有用户角色及其所有声明,并将其添加到GenerateUserIdentityAsync
中,如此示例中所示。
请记住,声明会在SecurityStampValidator
(示例)中被覆盖,因此您确实需要在该方法中向 cookie 添加声明,否则在重新生成标识时会丢失额外的声明。