如何使用 ASP.NET Core、Identity Framework 和 Entity Framework 显示特定用户创建的内容

用户1869407

我正在尝试创建一个 ASP.NET Core Web 应用程序,人们可以在其中创建、编辑、删除和查看目标。我能够使用带有 Identity Framework 的 Entity Framework 来对用户进行身份验证,但我想授权/显示该用户专门记录的内容。现在,该页面将显示所有用户创建的所有内容。

这是Goals控制器中的索引方法

[Authorize]
// GET: Goals
public async Task<IActionResult> Index()
{
    return View(await _context.Goal.ToListAsync());
}

这是一些Goals引入的控制器代码UserManager

public class GoalsController : Controller
{
    private readonly UserManager<ApplicationUser> _userManager;
    private readonly ApplicationDbContext _context;

    public GoalsController(ApplicationDbContext context, UserManager<ApplicationUser> userManager)
    {
        _context = context;
        _userManager = userManager;
    }

我已经阅读了一些使用常规旧 Asp.Net 的不同方法,但没有说明 ASP.NET Core 的最佳实践是什么。我应该使用LINQ?

这是目标模型:

public class Goal
{
    [Key]
    public int TaskID { get; set; }
    public string UserID { get; set; }
    [Display(Name = "Description")]
    public string Description { get; set; }
    public bool IsSubGoal { get; set; }
    [Display(Name = "Due Date")]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]

    public DateTime? DueDate { get; set; }
    [Display(Name = "Created On")]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]
    public DateTime CreatedOn { get; set; }
    [Display(Name = "Last Modified")]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]

    public DateTime? LastModified { get; set; }
}

UserID 是在创建目标时存储用户 ID 的位置。

未找到代码

您需要在 LINQ 查询中添加一个过滤器,如下所示:

[Authorize]
// GET: Goals
public async Task<IActionResult> Index()
{
    // the instruction below this comment will help to get the Id of the current authenticated user. 
    // Make sure you derive your controller from Microsoft.AspNetCore.Mvc.Controller
    var userId = await _userManager.GetUserIdAsync(HttpContext.User);
    return View(await _context.Goal.Where(g => g.UserID == userId).ToListAsync());
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用 Identity & Entity Framework 在 .NET Core 2.0 中管理身份验证和授权

如何使用.NET Standard和Entity Framework Core为现有数据库创建Entity Framework edmx文件?

无法使用带有 ASP.NET Core 和 Entity Framework Core 的 ajax 发送数组数据

这是如何使用Entity Framework Core和ASP.NET Core MVC 2.2+和3.0创建数据传输对象(DTO)

如何在 Entity Framework ASP.NET Core 中添加和更新?

从不同表创建ASP Net Core Entity Framework实体

asp.net core 2.0 Entity Framework 如何访问用户配置文件

在ASP.NET MVC Core Web API和Entity Framework Core中使用TryUpdateModel更新模型不起作用

ASP.NET Core 3.1和Entity Framework Core:一对多关系

ASP.NET Core & Entity Framework Core:一对多关系和导航属性

如何使用Entity Framework通过ASP.NET Core Web API处理一般查询?

.NET Core Entity Framework 如何从模型创建表

如何在ASP.NET Core Web应用程序中使用Entity Framework Core从数据库保存和检索图像?

在Entity Framework和ASP.NET MVC中使用模型和httppostedfilebase时发生NullException

cSharp asp net core entity framework web app - 为每个和添加值

ASP.NET Entity Framework Order By 和 Then By 不起作用

使用ASP.NET MVC,LINQ和Entity Framework从SQL Server 2008切换到MySQL

ASP.NET Core MVC + Entity Framework Core如何获取新添加的对象的ID

在ASP.Net Core中使用Entity Framework Core脚手架时出错

使用 Entity Framework Core 更新 ASP.NET Core 中相同字段的并行请求

ASP.NET Core 2.2 Entity Framework Logging

如何首先在ASP.NET MVC中将Identity与Entity Framework数据库一起使用

如何使用 Entity Framework Core 和 Linq 测试查询?

创建项目ASP.NET Core(.NET Core)和ASP.NET Core(.NET Framework)有什么区别

ASP.NET Core如何在ViewModel Entity Framework中加载相关数据

如何从Visual Studio Team Services运行ASP.NET Core Entity Framework迁移

ASP.NET Core使用UserManager或Entity Framework来验证扩展表单字段

Entity Framework Core 和 ASP.NET Core Web API 连接字符串:如何删除两个地方的连接字符串?

与ASP.NET Core和Entity Framework Core的集成测试-如何在每个测试中还原数据库中的测试数据?