Изменение HttpContext.Current.User.Идентификация.Имя после входа пользователя в систему

#c# #asp.net-mvc-3

#c# #asp.net-mvc-3

Вопрос:

В настоящее время я работаю над приложением ASP MVC. И было интересно, есть ли способ изменить HttpContext.Current.User.Идентификация.Имя после входа пользователя в систему.

Я хочу иметь возможность сделать это, чтобы позволить пользователю изменять свое имя пользователя, и поэтому мне нужен HttpContext.Current.User.Идентификация.Имя должно быть изменено, как только они это сделают.

Любая помощь была бы отличной

Ответ №1:

Я считаю, что вы не можете этого сделать 🙂

Заполняется во время аутентификации. Самое простое решение — это когда пользователь меняет имя пользователя — выйдите из него и попросите войти в систему.

Обновить

Он будет работать только с пользовательским провайдером. Если вы используете стандартный, я считаю, что его вообще нельзя изменить.

В качестве альтернативного решения вы можете попробовать сделать следующее: Когда пользователь пытается изменить свое имя: 1. Создайте нового пользователя 2. прекратите сеанс 3. удалите старого пользователя 4. измените все данные, относящиеся к пользователю, на новую учетную запись 5. войдите в него еще раз с новым пользователем.

Комментарии:

1. Классные приветствия, я выбрал более простое решение, выйдя из системы пользователя и заставив его подписать его обратно. Спасибо

2. Это звучит как ужасное, недружелюбное решение

3. waaaayy поздний ответ, но на самом деле вы можете добавить дополнительную идентификацию с помощью User.AddIdentity(claimsIdentity) . Просто убедитесь, что вы учитываете несколько идентификаторов при обращении к текущему пользователю.

4. Вы создаете нового участника и идентификатор (с новым именем), затем заменяете текущего пользователя новым участником.