首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenIDDict注册用户电子邮件确认

OpenIDDict注册用户电子邮件确认
EN

Stack Overflow用户
提问于 2017-01-27 00:34:49
回答 1查看 437关注 0票数 1

我正在使用带有OpenIDDict的ASP.NET MVC Core。我为OpenIDDict使用了带有cookie身份验证和JWT的视图。除了下面的场景之外,一切都运行得很好:

身份更改为首先向用户发送确认电子邮件,以确认其电子邮件地址。用户通过电子邮件获取链接并点击它。然后他们登录。很简单。在此期间,他们无法访问任何页面。

但我注意到,使用postman,他们可以通过OpenIDDict通过APi访问解决方案。他们仍然会得到授权。当他们获得授权时,他们就可以访问API。

写完这篇文章后,我有了一个想法,我可以简单地在交换操作期间将代码引入到AuthenticationController中:

代码语言:javascript
复制
public async Task<IActionResult> Exchange(OpenIdConnectRequest request)
    {
        Debug.Assert(request.IsTokenRequest(),
            "The OpenIddict binder for ASP.NET Core MVC is not registered. " +
            "Make sure services.AddOpenIddict().AddMvcBinders() is correctly called.");

        if (request.IsPasswordGrantType())
        {
            var user = await _userManager.FindByNameAsync(request.Username);
            //if (user == null)
            if (user == null || !(await _userManager.IsEmailConfirmedAsync(user)))
            {

成功了!这就是我自己的问题go...answered。Mya将来帮助别人

EN

回答 1

Stack Overflow用户

发布于 2017-01-27 10:58:10

虽然您的解决方案有效,但您可能更喜欢配置ASP.NET核心身份,以便在调用SignInManager.CanSignInAsync(user)时为您检查“已确认电子邮件”。您可以在标识选项中对其进行配置:

代码语言:javascript
复制
services.AddIdentity<ApplicationUser, IdentityRole>(options => {
    options.SignIn.RequireConfirmedEmail = true;
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41878402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档