如何在 ASP.Net Core 1.1MVC 中确认电话号码

2024-02-12

我不知道如何在 asp.net core 1.1 中进行电话号码确认

身份服务配置包含需要确认电子邮件和/或电话号码的显式选项。

可以通过以下方式完成:

services
    .AddIdentity<User, Role>(options =>
    {
        options.SignIn.RequireConfirmedEmail = true;
        options.SignIn.RequireConfirmedPhoneNumber = true;
     });

电子邮件的验证非常简单,因为 UserManager 包含显式令牌生成器及其验证器:

var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);

可以通过以下方式验证生成的令牌:

var result = await _userManager.ConfirmEmailAsync(user, code);

如果令牌有效,上面的行会将 user.EmailConfirmed 标志切换为 true。

现在的问题是,我没有看到类似的方法来生成电话验证令牌及其等效方法来验证它(如果成功,则应将 user.PhoneNumberConfirmed 标志切换为 true)。

然而,用户管理器包含很少的方法来更改用户电话:

_userManager.GenerateChangePhoneNumberTokenAsync();

and

_userManager.VerifyChangePhoneNumberTokenAsync();

但这些方法似乎不会切换 user.PhoneNumberConfirmed 标志。

我错过了什么吗?确认用户电话号码的正确方法是什么(换句话说,将 user.PhoneNumberConfirmed 设置为 true)?


感谢@tmg 向我指出源代码。

根据它,正确的方法确实是使用GenerateChangePhoneNumberTokenAsync为了生成一个令牌并且ChangePhoneNumberAsync验证它(这又设置PhoneNumberConfirmed如果验证成功则为 true):

var token = await _userManager
    .GenerateChangePhoneNumberTokenAsync(user, user.PhoneNumber);

var result = await _userManager
    .ChangePhoneNumberAsync(user, user.PhoneNumber, token);

Remark:不幸的是,在 ASP.NET Core 2.0.0 中,存在一个错误(回归)并且GenerateChangePhoneNumberTokenAsync不再生成短信友好的令牌,目前无用:

GenerateChangePhoneNumberTokenAsync 不会在 ASP.NET Core 2.0 中生成 SMS 友好的令牌 https://github.com/aspnet/Identity/issues/1388

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ASP.Net Core 1.1MVC 中确认电话号码 的相关文章

随机推荐

  • Ruby on Rails:我可以将请求直接路由到视图吗?

    我有一个管理部分 其中有一个子目录controllers目录 即目录app controllers admin 包含一组文件 每个文件包含一个用于处理管理部分的单独部分的控制器 现在 我想创建一个非常简单的 管理主页 只说 欢迎来到管理部分
  • 如何在 SQL Server 2005 表的 NTEXT 字段中查找 Unicode/非 ASCII 字符?

    我有一张有几千行的表 描述和摘要字段是 NTEXT 有时其中包含非 ASCII 字符 如何找到所有包含非 ASCII 字符的行 我有时会使用这个 cast 语句来查找 奇怪 的字符 select from table where table
  • Azure 负载均衡器 v2 中的“入站 NAT 规则”与“负载均衡规则”有何不同

    有人可以向我解释一下负载均衡器 v2 后端在这两种情况下实际发生的情况吗 应用入站 NAT 规则 应用负载平衡规则 当您有 1 台后端服务器或您知道要访问哪台后端服务器时 您将使用 NAT 规则 当您想要将负载均衡器分配到多个后端服务器时
  • 在 Erlang 中,record_info 和 tuple_to_list 返回相同的键顺序吗?

    即 如果我有记录 record one frag left Is record info fields one 即将always return frag left Is tl tuple to list one frag Frag left
  • C# 创建渐变图像

    如何使用 C 创建渐变图像 具有给定的高度和宽度 起始颜色和结束颜色 有人有一个简单的示例片段吗 谢谢你 您可以使用线性渐变画笔 http msdn microsoft com en us library system drawing dr
  • QListWidget 上的 QTest::mouseClick 问题

    我正在尝试使用 QTest 进行一些测试 我有一个 QListWidget 我想单击它来进行选择 但点击后 没有选择任何内容 有人有什么想法吗 这是我的测试课 void TestGui List TestDialog dlg dlg sho
  • div 中的垂直对齐图像[重复]

    这个问题在这里已经有答案了 我对 div 中的图像垂直对齐有问题 img thumb float left height 120px margin bottom 5px margin left 9px position relative w
  • 0xDEADBEEF 相当于 64 位开发?

    对于32位系统 无论是Linux Mac OS http en wikipedia org wiki Mac OS或者 视窗 PowerPC http en wikipedia org wiki PowerPC或 x86 我已经初始化了指针
  • 如何使用 JAXB 将丢失的元素解组到空对象中

    我在 Intellij IDEA org codehaus mojo jaxb2 maven plugin 1 6 中使用 JAXB Maven 插件来生成给定的 xsd 文件到对象 xsd 相当大 包含很多类型 其中大部分是可选的 现在
  • 如何将 TextMate 中的一行发送到在终端窗口中运行的 irb 进程?

    我经常在打开 TextMate 窗口并在其旁边的终端窗口中运行 irb 进程的情况下进行编码 我希望能够在 TextMate 中按下一个按键序列 该序列执行以下操作 复制当前选择 如果没有 则复制当前行 将其粘贴到运行 irb 的最上面的终
  • PDO 识别缺失的绑定变量

    使用 PDO 的最繁琐的事情之一是它说缺少一些变量 PDOStatement execute SQLSTATE HY093 参数数量无效 绑定变量的数量与标记数量不匹配 但没有说明是哪些 有什么解决办法可以识别它们吗 例如 sql SELE
  • Git 和日志顺序

    我试图从 git log 输出创建线性顺序 但我所有的尝试都失败了 我需要做的是将提交映射到包含该提交的下一个版本 我跑不了 git tag contains
  • 防止 Swift 函数指针中的保留循环

    在 Swift 中将函数作为对象传递时如何防止保留循环 想象一下你有一个像这样的数据源对象 import UIKit class MagicDataSource NSObject UITableViewDatasource deinit p
  • R 按行填充数组

    我想做一些矩阵运算 最好使用 3 维 或更高 维数组 如果我想填matrices按行有一个参数 拜罗 TRUE 但是没有这样的选项来创建 填充多维array 我能够实现它的唯一方法是使用aperm转置由列填充的数组 例如 arr 1 lt
  • VS2012 和 Wix 3.6 - 使用我的应用程序安装 .Net 4.5

    我对安装程序世界非常陌生 我已成功为我的应用程序制作了 msi 它正在使用快捷方式构建 并且也可以正确卸载 我的下一个目标是将 Net 4 5 与安装程序打包在一起 并在安装我的应用程序之前安装它 我还有一个需要安装的第三方应用程序 它被打
  • 将 Visual Studio 2010 RC 升级到 RTM/零售版/最终版

    我的计算机上安装了 VS2010 的 RC 版本 现在 RTM 版本已经发布 我想升级 除了主要的 Visual Studio 包和 NET Framework 4 之外 在安装 RTM 版本之前我还应该删除哪些内容 以尽量减少潜在的损坏
  • Vue 3 CLI - 如何为 Object.entries 添加 babel polyfill

    我有一个依赖项 vue2 google maps 它导致我的 Vue 应用程序在旧版浏览器中出现问题 引发错误Object entries 正在阅读有关 polyfill 的 Vue CLI 文档 https cli vuejs org g
  • 如何使用最新的apache poi设置粗体字体?

    我用的是最新的apache poi
  • 使用带有 AVR 微控制器的旋转编码器

    我无法让旋转编码器与 AVR 微控制器正常工作 编码器是机械式的ALPS编码器 http no farnell com 1520815 passives product us0 sku alps ec12d1524401 我正在使用亚特米加
  • 如何在 ASP.Net Core 1.1MVC 中确认电话号码

    我不知道如何在 asp net core 1 1 中进行电话号码确认 身份服务配置包含需要确认电子邮件和 或电话号码的显式选项 可以通过以下方式完成 services AddIdentity