0

我想更改当前登录用户的用户名(以编程方式),而无需在执行此操作后将用户注销。

这是我使用的方法代码

public void ChangeUsername(int userId, string newEmailAddress)
{
    UserController.ChangeUsername(userId, newEmailAddress);
}

每次我更改任何用户的用户名时,用户都必须在更新完成后再次登录。如何防止这种行为?

4

3 回答 3

1

在成功更改用户名后,您可以通过以编程方式登录用户来更改用户名,而无需强制用户重新登录。

//Change the username
UserController.ChangeUsername(userId, email);

//Stay logged in despite username change
var userAfterChange = UserController.GetUserById(PortalSettings.PortalId, userId);

UserController.UserLogin(PortalSettings.PortalId, userAfterChange, PortalSettings.PortalName, userAfterChange.LastIPAddress, false);
于 2022-03-03T21:36:42.500 回答
0

我明白了 经过多次研究,我发现注销用户是默认的 DNN 行为,这对于让用户使用他的新电子邮件登录并清除 DNN 缓存是有意义的,这样你就可以在任何地方看到这个用户使用他的新电子邮件。

我可以覆盖 DNN 行为,但不建议这样做,并且更改电子邮件很少发生,所以最好保持这种行为

这是 DNN 代码 在此处输入图像描述 在此处输入图像描述

于 2019-05-15T10:29:43.060 回答
0

通过使用 UserInfo 类,您将获得当前登录的 userInfo,获取 userId,然后更新用户名。

var userInfo = UserInfo;
UserController.ChangeUsername(userInfo.UserID, txtNewEmail.Text.Trim());

通过这种方式,您可以更改当前登录用户的用户名。

于 2019-12-20T10:04:08.670 回答