ASP.Net MVC 3 Membership.UpdateUser(пользователь MembershipUser)
У меня есть проект, который использует MVC3. в моем проекте у меня есть страница, на которой пользователь может редактировать свою учетную запись (UserComment, UserEmail, IsLocked, IsApproved). я уже делаю вид для редактирования учетной записи. У меня есть некоторые проблемы, чтобы сделать Edit Controller. вот мой код:
[HttpPost]
public ActionResult Edit(string id, FormCollection collection)
{
id = id.Replace("+", " ");
var user = Membership.GetUser();
Guid UserGUID = new Guid(user.ProviderUserKey.ToString());
var SysUser = db.System_User.Single(u => u.User_UserId == UserGUID);
//this is for updating User Office in my System_user table
SysUser.User_Office = collection["SysUsers[0].UserOffice"];
//this is for updating User Account in aspnet_membership table
user.UserName = collection["SysUsers[0].UserName"];
Membership.UpdateUser(user);
user.Comment = collection["SysUsers[0].UserComment"];
Membership.UpdateUser(user);
user.Email = collection["SysUsers[0].UserEmail"];
Membership.UpdateUser(user);
return View();
}
Когда я запускаю свой контроллер, я получаю сообщение об ошибке, например:
- user.UserName только для чтения, я не могу обновить это.
- я получаю значение user.Comment, но его не обновляют.
- я получаю сообщение об ошибке в окне "Правка", оно говорит: "Ссылка на объект не установлена для экземпляра объекта". @using (Html.BeginForm("edit/" + @Model.SysUsers[0].UserID, "cpanel/sysuser", FormMethod.Post))
Может кто-нибудь мне помочь?
Спасибо,
2 ответа
Вы не можете обновить имя пользователя пользователя с помощью поставщика членства ASP.NET. Вам нужно написать собственную логику доступа к данным, если вы хотите обновить имя пользователя.
Я бы предложил использовать поставщика членства прежде всего для аутентификации и встроить все другие методы обслуживания и т. Д. В бизнес-объекты вашего пользователя.