DNN 在不注销的情况下更改用户名
DNN change username without logging out
我想更改当前登录用户的用户名(以编程方式),而不是在此之后注销用户。
这是我使用的方法代码
public void ChangeUsername(int userId, string newEmailAddress)
{
UserController.ChangeUsername(userId, newEmailAddress);
}
每次我更改任何用户的用户名时,用户都必须在更新完成后重新登录。
如何防止这种行为?
我知道了
经过多次研究,我发现注销用户是默认的 DNN 行为,这对于让用户使用他的新电子邮件登录并清除 DNN 缓存是有意义的,这样你就可以在任何地方看到这个用户和他的新电子邮件。
我可以覆盖 DNN 行为,但不推荐这样做,更改电子邮件很少发生,所以最好保持这种行为
这是DNN代码
通过使用 class UserInfo,您将获得当前登录的 userInfo,获取 userId,然后更新用户名。
var userInfo = UserInfo;
UserController.ChangeUsername(userInfo.UserID, txtNewEmail.Text.Trim());
通过这种方式,您可以更改当前logged_in用户的用户名。
您可以更改用户名,而无需强制用户重新登录,方法是在成功更改用户名后以编程方式登录。
//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);
我想更改当前登录用户的用户名(以编程方式),而不是在此之后注销用户。
这是我使用的方法代码
public void ChangeUsername(int userId, string newEmailAddress)
{
UserController.ChangeUsername(userId, newEmailAddress);
}
每次我更改任何用户的用户名时,用户都必须在更新完成后重新登录。 如何防止这种行为?
我知道了 经过多次研究,我发现注销用户是默认的 DNN 行为,这对于让用户使用他的新电子邮件登录并清除 DNN 缓存是有意义的,这样你就可以在任何地方看到这个用户和他的新电子邮件。
我可以覆盖 DNN 行为,但不推荐这样做,更改电子邮件很少发生,所以最好保持这种行为
这是DNN代码
通过使用 class UserInfo,您将获得当前登录的 userInfo,获取 userId,然后更新用户名。
var userInfo = UserInfo;
UserController.ChangeUsername(userInfo.UserID, txtNewEmail.Text.Trim());
通过这种方式,您可以更改当前logged_in用户的用户名。
您可以更改用户名,而无需强制用户重新登录,方法是在成功更改用户名后以编程方式登录。
//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);