如何在ASP.NET MVC4中将模型数据与用户关联?

3

MVC4中有没有一种内置的方法来将持久模型数据与已验证的用户相关联,或者您应该提供自己的实现?

我阅读的MSDN教程并没有建议如何处理它,但是我看到了一个WebSecurity.CurrentUserId属性可以存储。例如,一个允许用户上传照片的网站模型:

public class Photo
{
    public int Id { get; set; }
    public int UserID { get; set; } // Controller sets WebSecurity.CurrentUserId?
    public DateTime Created { get; set; }
    ...
}

还是有"MVC方式"吗?

2
只需将用户ID作为数据表中的一列存储即可,没有必要让事情变得更加复杂。 - Ant P
我们创建了一个自定义页面基类,继承自PageBase,并在其中设置了用户和公司信息。然后,在所有的控制器中,我们都继承了这个自定义页面基类,以便在每个控制器上都可以使用所有的用户和公司信息。 - Matt Bodily
1个回答

1

你能不能不用像这样的东西:

public class Photo
{
public int Id { get; set; }
public int UserID { get; set; } 
public DateTime Created { get; set; }
public UserProfile user {get;set;}
...
}

public class UserProfile
{
 public int UserID { get; set; } 
}

这似乎是有效的,但我认为 Photo.UserID 属性变得多余了。UserProfile 在互联网项目模板中生成,在数据库中添加了一个带有 FK 约束的 User_UserId 列。虽然它是可空的,但看起来有点奇怪。 - Nobody Special

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接