2017-03-28 8 views
0

.net Webフォームプロジェクトを開始しました。テンプレートでは既にユーザーがログインして登録できます。管理ページでパスワードをリセットするオプションがあります。 FirstNameとLastNameを更新するオプションを追加するにはどうすればよいですか?.netでの現在のユーザー属性の更新C#

これは、新規ユーザーを作成するためのコードです:

var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>(); 
     var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>(); 
     var user = new ApplicationUser() { UserName = Email.Text, Email = Email.Text, FirstName = FirstName.Text, LastName = LastName.Text, PhoneNumber = PhoneNumber.Text }; 
     IdentityResult result = manager.Create(user, Password.Text); 
     if (result.Succeeded) 
     { 
      signInManager.SignIn(user, isPersistent: false, rememberBrowser: false); //not needed 
      IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response); //not needed 
     } 
     else 
     { 
      ErrorMessage.Text = result.Errors.FirstOrDefault(); 
     } 

これは、フォームがどのように見えるかです:それは誰にも役立ちます願っています:これは私がそれを解決する方法です

manage form

答えて

0

var currentUserId = HttpContext.Current.User.Identity.GetUserId(); 
     var context = new ApplicationDbContext(); 
     var user = context.Users.FirstOrDefault(u => u.Id == currentUserId); 

     if (user != null) 
     { 
      if (FirstName.Text != "") user.FirstName = FirstName.Text; 
      if (LastName.Text != "") user.LastName = LastName.Text; 
      if (PhoneNumber.Text != "") user.PhoneNumber = PhoneNumber.Text; 
      if(Email.Text != "")  user.Email = Email.Text; 

     }    

     var userStore = new UserStore<ApplicationUser>(context); 
     var userManager = new UserManager<ApplicationUser>(userStore); 
     var result = userManager.Update(user); 
     context.SaveChanges(); 
関連する問題