Identityserver4 Identity Server 4-更改用户名/电子邮件的用户

Identityserver4 Identity Server 4-更改用户名/电子邮件的用户,identityserver4,asp.net-identity-2,Identityserver4,Asp.net Identity 2,我需要给用户,一旦登录,能够改变他们的用户名/电子邮件地址(相同的值)在他们的帐户。。。可能与更改密码的方式类似。我已经查看了IdentityServer4文档,但没有看到这方面的内容。。。系统正在使用ASP.net标识存储用户数据 是否有一个带有IdentityServer4的“开箱即用”选项来更改用户名?(因为文件中没有,我想没有) 有人能举出一些已经完成的例子吗?搜索时,令人惊讶的是,关于这一点的信息非常少 如果没有例子,谁能建议从哪里开始 如果您在IS4中使用Asp.Net标识,则将通过

我需要给用户,一旦登录,能够改变他们的用户名/电子邮件地址(相同的值)在他们的帐户。。。可能与更改密码的方式类似。我已经查看了IdentityServer4文档,但没有看到这方面的内容。。。系统正在使用ASP.net标识存储用户数据

  • 是否有一个带有IdentityServer4的“开箱即用”选项来更改用户名?(因为文件中没有,我想没有)

  • 有人能举出一些已经完成的例子吗?搜索时,令人惊讶的是,关于这一点的信息非常少

  • 如果没有例子,谁能建议从哪里开始


  • 如果您在IS4中使用Asp.Net标识,则将通过Asp.Net标识方法更新用户名/电子邮件。具体来说,这是通过UserManager使用两个方法完成的,即setUsernameAncy()和SetEmailAsync()。假设您已经有一个UserManager实例(使用DI是常见的),代码如下所示:

    // First get the user, in this example, by ID but also you can use FindByEmailAsync()
    var identityUser = await _userManager.FindByIdAsync(id.ToString());
    
    // Change the Username field
    var usernameResult = await _userManager.SetUserNameAsync(identityUser, user.Email);
    
    // Change the email field
    var emailResult = await _userManager.SetEmailAsync(identityUser, user.Email);
    
    然后,您可以检查usernameResult.Successed和emailResult.Successed布尔值以了解操作的结果

    您可以按照自己的意愿实现它。在我的例子中,我在运行此代码的IdentityServer4实例(也受IS4本身保护)上创建了一个单独的“用户管理”API端点。如果您对类似的选项感兴趣,请查看IS4上关于创建您自己的端点的文档:

    来自:提供了一个基于ASP.NET身份的实现,用于管理Identity Server用户的身份数据库。此实现在IdentityServer中实现了所需的扩展点,以加载标识数据,供用户将声明发送到令牌中。这就是IdentityServer4的功能。对于Asp.Net标识,您可以查看Microsoft。