#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. Вы создаете нового участника и идентификатор (с новым именем), затем заменяете текущего пользователя новым участником.