在Asp.net Mvc 6网站中,我定制了开箱即用的AccountController
,以便在注册<{p>}之前在调用userManager.CreateAsync()
之前添加自定义声明
Register()
方法ExternalLoginConfirmation()
现在我想做的是,在用户登录后立即
Login()
和后,在signInManager.PasswordSignInAsync()
方法中ExternalLoginCallback()
signInManager.ExternalLoginSignInAsync()
方法中...要检索该声明,理想情况下无需点击数据库即可获取用户。
我注意到如果我在登录后直接查看用户,则声明集合为空。但是,如果我在后续控制器操作中查看它,则会填充“声明”集合并在其中包含我的自定义声明。
问题是,为什么登录后不会立即填写索赔(我猜登录代码不会刷新CurrentPrincipal?)并且在登录后有另一个地方可以直接检查以获取声称没有击中DB?
答案 0 :(得分:1)
您可以尝试实现自己的ApplicationUserStore并填充用户所需的任何属性(或用作身份实体的实体)。