![]() |
1
2
对于其他有这个问题的人,我现在的处境是。。。要将声明永久存储在数据库中并在登录时自动加载,必须使用以下命令,并且更改在下次登录之前不会生效:
使用以下命令只会存储当前会话的声明,因此我的做法是正确的:
我发现,要在控制器操作之间“坚持”声明,唯一的方法是重写UserClaimsPrincipalFactory,以便ASP。Net正在使用自定义代码作为登录过程的一部分。这里的问题是,您只能在相关方法中访问ApplicationUser,而不能真正传入任何自定义参数AFAIK。因此,我首先由ApplicationUser类修改如下:
(必须应用EF迁移)。现在,我创建了一个从UserClaimsPrincipalFactory派生的类,如下所示:
(您必须在startup.cs ConfigureServices中注册服务):
然后在登录操作中,我在登录之前从模型数据中设置新的用户属性,以便UserClaimsPrincipalFactory在设置声明时可以使用该属性:
我仍然愿意接受更好的建议或其他想法,但这似乎对我有用。 |
|
Bruce Phillips · 模型状态无效后,选择框未在视图中填充 7 年前 |
![]() |
ProfK · 为什么此viewmodel值不能正确渲染? 7 年前 |
![]() |
TomBombadil · 查看本地化 7 年前 |
![]() |
ProfK · 即使使用调试配置发布,错误页上也没有详细信息 7 年前 |