如何在 ASP.NET Identity 中编辑用户

2023-11-24

我是 ASP.NET Identity 框架的新手,我正在尝试做一些事情。我想要做的是编辑已经注册的用户,然后将用户详细信息更新到数据库...... 以前,我使用实体框架,然后它生成我的控制器视图并自行建模。但我想更新我的用户详细信息并将用户列表放入列表中。

我该如何做这些事情?我见过角色方法..但我一直不明白, 我能怎么做?不使用角色..因为,我不需要管理员目的。只是,我想更新我的用户详细信息。


创建一个 dbcontext 对象“context”,您还需要创建一个模型类“UserEdit”并在其中包含要编辑的字段。

private ApplicationDbContext context = new ApplicationDbContext();
// To view the List of User 
 public ActionResult ListUsers ()
        {
            return View(context.Users.ToList());
        }

public ActionResult EditUser(string email)
        {
            ApplicationUser appUser = new ApplicationUser();
            appUser = UserManager.FindByEmail(email);
            UserEdit user = new UserEdit();
            user.Address = appUser.Address;
            user.FirstName = appUser.FirstName;
            user.LastName = appUser.LastName;
            user.EmailConfirmed = appUser.EmailConfirmed;
            user.Mobile = appUser.Mobile;
            user.City = appUser.City;


            return View(user);
        }

    [HttpPost]
    public async Task<ActionResult> EditUser(UserEdit model)
    {


        if (!ModelState.IsValid)
        {
            return View(model);
        }
        var store = new UserStore<ApplicationUser>(new ApplicationDbContext());
        var manager = new UserManager<ApplicationUser>(store);
        var currentUser = manager.FindByEmail(model.Email);
        currentUser.FirstName = model.FirstName;
        currentUser.LastName = model.LastName;
        currentUser.Mobile = model.Mobile;
        currentUser.Address = model.Address;
        currentUser.City = model.City;
        currentUser.EmailConfirmed = model.EmailConfirmed;
        await manager.UpdateAsync(currentUser);
        var ctx = store.Context;
        ctx.SaveChanges();
        TempData["msg"] = "Profile Changes Saved !";
        return RedirectToAction("ListUser");
    }

// 用于删除用户

public ActionResult DeleteUser(string id)
        {
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            var user = context.Users.Find(id);
            if (user == null)
            {
                return HttpNotFound();
            }
            return View(context.Users.Find(id));
        }


        public async Task<ActionResult> UserDeleteConfirmed(string id)
        {
            var user = await UserManager.FindByIdAsync(id);

            var result = await UserManager.DeleteAsync(user);
            if (result.Succeeded)
            {
                TempData["UserDeleted"] = "User Successfully Deleted";
                return RedirectToAction("ManageEditors");
            }
            else
            {
                TempData["UserDeleted"] = "Error Deleting User";
                return RedirectToAction("ManageEditors");
            }
        }

下面是 ListUser 的视图:

@model IEnumerable<SampleApp.Models.ApplicationUser>

@{
    ViewBag.Title = "ListUsers";
}

<div class="row">
    <div class="col-md-12">
        <div>
            <h3>@ViewBag.Message</h3>
        </div>
        <div>
            <h2>ManageEditors</h2>


            <table class="table">
                <tr>
                    <th>
                        S.No.
                    </th>
                    <th>
                        Email
                    </th>
                    <th>
                     EmailConfirmed
                    </th>

                    <th>
                       FirstName
                    </th>
                    <th>
                       LastName
                    </th>
                    <th>
                        Mobile
                    </th>
                    <th></th>
                </tr>
                @{ int sno = 1;
                   foreach (var item in Model)
                {
                    <tr>
                        <td>
                         @(sno++)
                        </td>
                        <td>
                            @Html.DisplayFor(modelItem => item.Email)
                        </td>
                        <td>
                            @Html.DisplayFor(modelItem => item.EmailConfirmed)
                        </td>

                        <td>
                            @Html.DisplayFor(modelItem => item.FirstName)
                        </td>
                        <td>
                            @Html.DisplayFor(modelItem => item.LastName)
                        </td>
                        <td>
                            @Html.DisplayFor(modelItem => item.Mobile)
                        </td>
                        <td>
                            @Html.ActionLink("Edit", "EditUser", new { email=item.Email})
                            @Html.ActionLink("Delete", "DeleteUser", new { id = item.Id })
                        </td>
                    </tr>
                }
}
            </table>


        </div>
    </div>

</div>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ASP.NET Identity 中编辑用户 的相关文章

随机推荐