ユーザーのログインに WebSecurity と SimpleMembershipProvider を使用しています。
ユーザーは自分の電子メールを変更できます
Dim memberId As Integer = 1
Dim context As UsersContext = New UsersContext
Dim userProfile As UserProfile =
context.UserProfiles.Where(Function(f) f.UserId = memberId).SingleOrDefault()
' Email before the change: "a@a.com"
userProfile.UserName = "b@b.com"
context.SaveChanges()
ただし、この更新後も、HttpContext は引き続きユーザーを古い電子メールとして報告します。
' Name is "a@a.com" but should be "b@b.com"
HttpContext.User.Identity.Name
最初は、ユーザーをログアウトして再度ログインできると思っていました
WebSecurity.Logout()
' but I don't have the user's password
WebSecurity.Login("b@b.com", "???")
ユーザーがログインの詳細を変更したことを反映するには、どうすれば認証 Cookie を更新できますか?