加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC如何使用ASP.NET成员资格提供程序管

发布时间:2020-12-16 03:44:53 所属栏目:asp.Net 来源:网络整理
导读:我来自5年的ASP.NET Web Forms经验,而且我是ASP.NET MVC的新手.我现在正在尝试使用一些教程,视频教程和书籍来学习MVC. 我正在使用Visual Studio 2012和全新的ASP.NET MVC 4构建一个小型Web应用程序来管理我的共同基金组合.这应该让我进入新模式并学习很多新
我来自5年的ASP.NET Web Forms经验,而且我是ASP.NET MVC的新手.我现在正在尝试使用一些教程,视频教程和书籍来学习MVC.
我正在使用Visual Studio 2012和全新的ASP.NET MVC 4构建一个小型Web应用程序来管理我的共同基金组合.这应该让我进入新模式并学习很多新东西……
我的应用程序也应该让其他朋友也这样做.因此,它必须管理不同用户的投资组合.
我已经用Entity Framework Code First构建了一个小数据库,因此我有一些基本模型:基金,投资组合,股票,存款,来源和用户.一个用户可以拥有许多投资组合,其中包含许多资金.每个用户都有自己的存款清单.每个基金都有很多股票价值(一天/天). Source模型只是一个表格,我为每个网站源码放置一个URL,用于特定基金的股票数据.因此,一个基金有很多来源.然后我使用刮刀类每天从这些网站获取数据.
这是应用程序的主要结构.现在,我需要知道最好的方法是什么:

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

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

换句话说,我如何实现我的控制器?例如.:

[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...
}

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

解决方法

>这是你必须自己做出的选择,但我喜欢创建自己的会员提供商,并不是那么难.使用您自己的提供商,您可以按照自己的方式制作它,而不是像10年前微软认为的酷.示例: http://www.codeproject.com/Articles/165159/Custom-Membership-Providers.在.NET 4.5中,SimpleMembershipProvider可以更轻松地创建自己的提供程序.
>使用[Authorize]属性,您告诉控制器只接受已自动化的用户.当用户登录时,您可以将用户名/用户ID放在FormsAuthentication cookie中,这样您就可以非常轻松地获取用户的用户名/用户ID.如果要在其中添加更多数据,还可以在cookie中创建Authtication ticktes.为了更容易测试,我几乎不建议在HttpContext.User和IPrincipal,http://www.hanselman.com/blog/IPrincipalUserModelBinderInASPNETMVCForEasierTesting.aspx之间创建绑定.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读