加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

Asp.net Mvc 6登录后立即获得用户声明

发布时间:2020-12-16 03:17:12 所属栏目:asp.Net 来源:网络整理
导读:在 Asp.net Mvc 6网站中,我定制了开箱即用的AccountController,以便在调用userManager.CreateAsync()之前添加自定义Claim,两者都在注册时 使用本地帐户(电子邮件/密码),在控制器的Register()方法中 使用外部提供商(google / facebook),在控制器的ExternalLog
在 Asp.net Mvc 6网站中,我定制了开箱即用的AccountController,以便在调用userManager.CreateAsync()之前添加自定义Claim,两者都在注册时

>使用本地帐户(电子邮件/密码),在控制器的Register()方法中
>使用外部提供商(google / facebook),在控制器的ExternalLoginConfirmation()中

现在,我想做的是,在用户登录后立即执行

>在调用signInManager.PasswordSignInAsync()和之后的Login()方法中
>在调用signInManager.ExternalLoginSignInAsync()之后的ExternalLoginCallback()方法中

…检索该声明,理想情况下无需访问数据库即可获取用户.

我注意到如果我在登录后直接看到User,则Claims集合为空.但是,如果我在后续控制器操作中查看它,则会填充Claims集合并在其中包含我的自定义声明.

问题是,为什么登录后不会立即填写索赔(我猜登录代码不会刷新CurrentPrincipal?)并且在登录后直接检查另一个地方以获取索赔而不会点击DB?

解决方法

您可以尝试实现自己的ApplicationUserStore并填充您需要的用户(或用作身份实体的实体)的任何属性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读