2011-09-20 7 views
0

Je veux mettre à jour le compte d'utilisateur dans mon projet. J'ai vue comme ceci:ASP.Net MVC 3 Comment mettre à jour le compte utilisateur?

@using (Html.BeginForm("edit/" + @Model.SysUsers[0].UserID, "cpanel/sysuser", 
FormMethod.Post)) 
{ 
@Html.ValidationSummary(true) 
<fieldset> 
    <legend>@Model.SysUsers[0].UserID</legend> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.SysUsers[0].UserName) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.SysUsers[0].UserName) 
     @Html.ValidationMessageFor(model => model.SysUsers[0].UserName) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.SysUsers[0].UserEmail) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.SysUsers[0].UserEmail) 
     @Html.ValidationMessageFor(model => model.SysUsers[0].UserEmail) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.SysUsers[0].UserComment) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.SysUsers[0].UserComment) 
     @Html.ValidationMessageFor(model => model.SysUsers[0].UserComment) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.SysUsers[0].UserLocked) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.SysUsers[0].UserLocked) 
     @Html.ValidationMessageFor(model => model.SysUsers[0].UserLocked) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.SysUsers[0].UserApproved) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.SysUsers[0].UserApproved) 
     @Html.ValidationMessageFor(model => model.SysUsers[0].UserApproved) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.SysUsers[0].UserOffice) 
    </div> 
    <div class="editor-field"> 
     @Html.DropDownListFor(model => model.SysUsers[0].UserOffice, new 
     SelectList(Model.GetawayOffice, "OfficeCode", "OfficeDesc", 
     Model.SysUsers[0].UserOffice)) 
     @Html.ValidationMessageFor(model => model.SysUsers[0].UserOffice) 
    </div> 
    <p> 
     <input type="submit" value="Save" /> 
    </p> 
</fieldset> 
} 

et le contrôleur est comme ceci:

public ActionResult Edit(string id) 
    { 
     model.SysUsers = repo.SelectSystemUser(id).ToList(); 
     model.Office = reps.Office().ToList(); 

     return View(model); 
    } 
[HttpPost] 
    public ActionResult Edit(string id, FormCollection collection) 
    { 
     //update in System_User Table 
     Guid UserId = new Guid(id.ToString()); 
     var SysUser = db.System_User.Single(s => s.User_UserId == UserId); 
     SysUser.User_Office = collection["SysUsers[0].UserOffice"]; 

     //update aspnet_membership, like comment, email, isLocked, isApproved 
     ... 
    } 

je peux mettre à jour Office dans le tableau Sytem_User, mais comment puis-je mettre à jour aspnet_membership (son pour commentaire updting, email, isLocked, isApproved)?

Je pense que je dois utiliser

membership.UpdateUser(MembershipUser User) 

mais quelqu'un peut me donner un exemple comment utiliser membership.UpdateUser?

maintenant je peux mettre à jour un commentaire utilisateur et e-mail de l'utilisateur, j'utilise ceci:

var usermembership = Membership.GetUser(UserId); 

usermembership.Comment = collection["SysUsers[0].UserComment"]; 
Membership.UpdateUser(usermembership); 

usermembership.Email = collection["SysUsers[0].UserEmail"]; 
Membership.UpdateUser(usermembership); 

mais je ne peux pas mettre à jour l'utilisateur verrouillé et approuver l'utilisateur. comment mettre à jour thoose?

merci

Répondre

2

Membership.UpdateUser Method

Met à jour la base de données avec les informations de l'utilisateur spécifié.

MembershipUser u = Membership.GetUser(User.Identity.Name); 
u.Email = someValue; 
Membership.UpdateUser(u); 
+0

merci CD .. maintenant je peux mettre à jour le commentaire d'utilisateur et l'email d'utilisateur, j'utilise comme ceci –

0

Jetez un oeil à http://msdn.microsoft.com/en-us/library/system.web.security.membership.updateuser.aspx

possible de duper ASP.Net MVC 3 Membership.UpdateUser(MembershipUser user)

Hmm - Je pense que vous êtes sur la bonne voie. Jetez un coup d'œil aux exemples d'applications utilisant l'adhésion.

J'utilise ici WebForms changer un mot de passe:

 user = Membership.GetUser(txtUsername.Text); 
     string generatedPassword = user.ResetPassword(); 
     user.ChangePassword(generatedPassword, txtPassword.Text); 

Bonne chance.

0

Je pense qu'un moyen serait celui d'écrire votre nouvelle implémentation de membershipuser.

Voir cet article "How to: Implement a Custom Membership User".

Si vous ne souhaitez mettre en œuvre toutes les méthodes que vous pouvez créer une classe descendante et écrire uniquement les méthodes dont vous avez besoin de se comporter différemment, puis déclarer votre nouveau fournisseur dans le web.config

Questions connexes