Kentico 10 - 如何更新现有用户的用户名?

只是

使用基于声明的身份验证的 kentico 10 网站。我们可以在外部系统中更新他们的电子邮件地址。所以我想做的是通过基于我们 sso 平台的外部用户 ID 查找来更新用户的电子邮件地址和用户名。

var existingUser = UserInfoProvider.GetUsers().Where("ExternalGuid", QueryOperator.Equals, userId).FirstOrDefault();

if (existingUser.IsInSite(SiteContext.CurrentSiteName))
    UserInfoProvider.RemoveUserFromSite(existingUser.UserName, SiteContext.CurrentSiteName);

loggingInUser = UserInfoProvider.GetUserInfo(existingUser.UserID);
loggingInUser.UserName = e.UserName;

UserInfoProvider.SetUserInfo(loggingInUser);

我收到错误:代号为“[email protected]”的用户已经存在。

这发生在 SetUserInfo 行上。所以我认为必须有另一种方法来正确更新用户名。

布伦登转身

你需要做几件事:

检查用户是否已经存在:

UserInfo ui = UserInfoProvider.GetUserInfo(newUserName);
if (ui != null)
{
  // user exists with new username so don't continue
}

检查用户名是否可以用作用户名(没有空格、特殊字符等):

if (!ValidationHelper.IsUserName(newUserName))
{
  // username cannot be used as a username
}

检查用户名是否被保留:

if (UserInfoProvider.NameIsReserved(siteName, newUserName))
{
  // reserved username so cannot use it
}

我敢打赌用户名是保留的或无效的,这就是它不保存的原因。您完成的作业应该可以正常工作。

看起来您也在全局处理程序中执行此更新,因此这可能会导致一些问题。因此,您可能必须稍后执行该用户名更新,或者只是将记录写入自定义表,然后根据在自定义表中创建这些记录的事件从那里更新它。

因此,我将调试您的代码并通过将其从全局事件处理程序中删除来验证它是否正常工作,如果它有效,那么一次发生太多事情是一个问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

扩展管理用户网格Kentico 10的列

隐藏产品在Kentico 10

Kentico 10-页面更新中的自定义操作

Kentico无法读取更新的SQL Server服务器名,用户名或密码

在没有用户名或密码的情况下从Ubuntu访问Windows 10公共共享

等待批准选项卡在Kentico 10中不显示禁用用户

如何在Windows 10上检查PostgreSQL的用户名

Kentico10 文化不是独立的

将 kentico 从 9 升级到 10

如何在 Windows(7、8、8.1 和 10)中判断登录用户的用户名?

Debian 10 su命令以root用户身份登录到现有用户,无需密码

如何更改所有用户的数字格式?(Windows 10)

Windows 10-带有空格和PATH的用户名

Microsoft Windows 10“删除所有内容”保留用户名

如何知道Oracle 10g Ex的用户名和密码?

Watson Speech to Text:如何在 Windows 10 上设置我的用户名和密码

Windows10:将现有用户帐户的开始菜单导入到新用户帐户

在 kentico 10 网站中嵌入可点击的流程图

Kentico 10使用的Web爬网程序引擎

在 Kentico 10 中删除 AutomaticContactMerger 类的解决方法

Kentico 10时区未按预期工作

猫鼬如何防止已经具有用户名的用户修改用户名

现有SSH证书的用户名?

没有用户名的Django用户注册

Kentico Personas更新时间延迟

Kentico通用寻呼机更新面板

如何通过用户名获取current_user以外的所有用户

如何在netty中存储具有用户名和ChannelHandlerContext的用户列表

当我只有用户名时如何获得用户头像?