gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 如何使用 ASP.NET Membership Provider 管理用户内容

转载 作者:行者123 更新时间:2023-12-04 16:11:46 27 4
gpt4 key购买 nike

我有 5 年的 ASP.NET Web 窗体经验,而且我是 ASP.NET MVC 的新手。我现在正在尝试通过一些教程、视频教程和书籍来学习 MVC。
我正在使用 Visual Studio 2012 和全新的 ASP.NET MVC 4 构建一个小的 Web 应用程序来管理我的共同基金投资组合。这应该让我进入新模式并学习很多新东西......
我的应用程序也应该让其他一些 friend 也这样做。所以它必须 管理不同用户的投资组合 .
我首先使用实体​​框架代码构建了一个小数据库,所以我有一些基本模型:基金、投资组合、共享、存款、来源和用户。一个用户可以拥有许多投资组合,其中包含许多资金。每个用户都有自己的存款 list 。每个基金都有许多股票值(value)(一天)。 Source 模型只是一个表格,我在其中为每个网站来源放置了一个 URL,用于特定基金的份额数据。所以,一只基金有很多来源。然后,我每天使用一次爬虫类从这些网站获取数据。
这是应用程序的主要结构。现在,我需要知道什么是最好的方法:

1) 管理用户账号 .
我应该在我的数据库上集成 ASP.NET 成员数据库结构并使用它而不是我的自定义用户表来管理用户吗?

2) 管理用户内容 : 投资组合、基金等
什么是最简单的 最优雅在 MVC 模式中,实现身份验证和所有授权验证以使用户获取自己的数据?我是否需要在每个 Controller 的每个操作中检查这一点?

那么,换句话说,我必须如何实现我的 Controller ?例如。:

[Authorize]
public class PortfolioController : Controller
{
private FundMonitorContext db = new FundMonitorContext();

public ActionResult Index()
{
// Check user ID and give back to the view only his portfolios...

var portfolio = db.Portfolios.List();
return View(portfolio.ToList());
}

...

public ActionResult Details(int id = 0)
{
...
}

//Other actions...
}

我真的很感激每一个建议!

最佳答案

  • 这是您必须自己做出的选择,但我喜欢创建自己的 Membership Provider,这并不难。使用您自己的提供商,您可以按照自己的方式进行制作,不像 10 年前微软认为的很酷。示例:http://www.codeproject.com/Articles/165159/Custom-Membership-Providers .在 .NET 4.5 中,使用 SimpleMembershipProvider 创建您自己的提供程序更加容易。
  • 使用 [Authorize] 属性,您告诉 Controller 只接受授权用户。当用户登录时,您可以将用户名/用户 ID 放在 FormsAuthentication cookie 中,这样您就可以很容易地获取用户的用户名/用户 ID。如果您想在其中放入更多数据,您还可以在 cookie 中创建 Authtication ticktes。为了更容易测试,我几乎不建议在 HttpContext.User 和 IPrincipal 之间创建绑定(bind),http://www.hanselman.com/blog/IPrincipalUserModelBinderInASPNETMVCForEasierTesting.aspx .
  • 关于asp.net-mvc - ASP.NET MVC 如何使用 ASP.NET Membership Provider 管理用户内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12458683/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com