【问题标题】:ASP.Net Core Identity - Manage other usersASP.Net Core Identity - 管理其他用户
【发布时间】:2021-01-10 13:07:14
【问题描述】:

我自定义了默认用户身份并创建了多个用户。 假设我是管理员并且我想管理其他用户信息(更改属性值)。 如果我有他们的 ID,我如何访问其他用户的数据。

我可以检索表中的所有用户并在“asp-route-id”中获取他们的 ID

    @foreach (var item in Model.ApplicationUser)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.FirstName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.LastName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Id)
            </td>
            <td>
                <a class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Manage/Index" title="Manage" asp-route-id="@item.Id">Edit</a>

我在使用 userManager 检索\更新其他用户信息时卡住了 在 Get 和 Post 方法中。

【问题讨论】:

    标签: asp.net-core identity usermanager


    【解决方案1】:

    我设法使用 lambda 表达式解决了它

    var UsertoEdit = _userManager.Users.FirstOrDefault(u => u.Id == ID);
    

    ID应该通过asp-route获取

    我已发布以下代码供参考:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Authorization;
    using Microsoft.AspNetCore.Identity;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.AspNetCore.Mvc.RazorPages;
    using WebApplication2.Models;
    
    namespace WebApplication2.Areas.Identity.Pages.Account.Manage
    {
    
        public partial class IndexModel : PageModel
        {
            private readonly UserManager<ApplicationUser> _userManager;
            //private readonly SignInManager<ApplicationUser> _signInManager;
    
            public IndexModel(
                UserManager<ApplicationUser> userManager)
    
            {
                _userManager = userManager;
    
            }
    
    
    
            [BindProperty]
            public InputModel Input { get; set; }
    
    
    
            public class InputModel
            {
    
                public string FirstName { get; set; }
                public string LastName { get; set; }
                public string Username { get; set; }
    
    
            }
    
            private async Task LoadAsync(string ID)
            {
    
    
                var UsertoEdit = _userManager.Users.FirstOrDefault(u => u.Id == ID);
    
    
    
                Input = new InputModel
                {
                    FirstName = UsertoEdit.FirstName,
                    LastName = UsertoEdit.LastName,
                    Username = UsertoEdit.UserName
                };
            }
    
            public async Task<IActionResult> OnGetAsync(string ID)
            {
                var UsertoEdit = _userManager.Users.FirstOrDefault(u => u.Id == ID);
    
                if (UsertoEdit == null)
                {
                    return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
                }
    
    
    
                await LoadAsync(ID);
                return Page();
    
            }
    
            public async Task<IActionResult> OnPostAsync(string ID)
            {
    
                var UsertoEdit = _userManager.Users.FirstOrDefault(u => u.Id == ID);
    
                if (UsertoEdit == null)
                {
                    return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
                }
    
                if (!ModelState.IsValid)
                {
    
                    await LoadAsync(UsertoEdit.UserName);
                    return Page();
                }
                if (Input.FirstName != UsertoEdit.FirstName)
                {
                    UsertoEdit.FirstName = Input.FirstName;
                }
    
                if (Input.LastName != UsertoEdit.LastName)
                {
                    UsertoEdit.LastName = Input.LastName;
                }
                await _userManager.UpdateAsync(UsertoEdit);
    
                return RedirectToPage("/Users");
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多