C# 使用配置文件和角色等扩展AspNetUsers-VS2013

C# 使用配置文件和角色等扩展AspNetUsers-VS2013,c#,asp.net-mvc,entity-framework,authentication,authorize-attribute,C#,Asp.net Mvc,Entity Framework,Authentication,Authorize Attribute,我需要一种方式: 可以管理所有用户的超级管理员用户 一种注册/登录表单,允许用户使用用户名和密码注册并使用该用户名和密码登录 一旦注册,这是一种向他们的个人资料中添加更多详细信息的方法 我知道MVC4.0-5.0有[AuthorizeAttribute],我想利用微软的安全性,而不是用一些很容易被攻击并让其他开发人员想哭的蹩脚用户表来破坏我的方式 因此,我可以看到一个名为AspNetUsers的数据库表,该表中有一个Id列。所以我假设我允许用户使用内置的注册表表单进行注册。。。然后,在登录时

我需要一种方式:

  • 可以管理所有用户的超级管理员用户
  • 一种注册/登录表单,允许用户使用用户名和密码注册并使用该用户名和密码登录
  • 一旦注册,这是一种向他们的个人资料中添加更多详细信息的方法
我知道MVC4.0-5.0有[AuthorizeAttribute],我想利用微软的安全性,而不是用一些很容易被攻击并让其他开发人员想哭的蹩脚用户表来破坏我的方式

因此,我可以看到一个名为AspNetUsers的数据库表,该表中有一个Id列。所以我假设我允许用户使用内置的注册表表单进行注册。。。然后,在登录时,他们可以使用我自己的EF UserProfile类结构来填写自己的详细信息:

public class UserProfile
{
    [Key]
    public int Id { get; set; }
    public string UserId { get; set; } // Will link the profile to the user created by Microsofts own authentication do-raggy
    public string Email { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
这听起来是对的还是我错过了一些技巧

我如何向用户添加角色?这对我来说是全新的(就使用此框架而言)。比如说,我需要添加自己作为超级管理员,我需要一个超级管理员角色

然后我需要这样做,任何人都可以注册为会员角色的应用程序

最后,作为一名超级管理员,我需要能够授予已注册为项目管理员的个人。。。然后我可以使用属性标签[Authorize(role=“ProjectAdministrators”)]

我理解这里的逻辑,但我可以举一个向用户添加角色并将配置文件链接到用户的例子



如果让用户注册一个电子邮件地址以及用户名和密码是一件很重要的事情呢。我是否简单地将列添加到AspNetUsers数据库表?。。我在哪里定义AspNetUsers模型的新属性?

有一些方法可以通过提供程序实现这一点

您已经在使用默认的MembershipProvider,为什么不查看一下配置文件提供程序? msdn.microsoft.com/en-us/library/taab950e%28v=vs.100%29.aspx


这里有一个链接对@JamesT的帮助超过了概要文件提供商的技术“描述”(缺少MS的详细信息):

有一些方法可以通过提供商实现这一点。您已经在使用默认的MembershipProvider,为什么不查看一下配置文件提供程序?我对我的应用程序进行了长时间的转储,并添加了一个UserProfile表,这一切都正常运行了。。然后我又回到了你的链接,发现了一个更好的链接:现在我正在自杀,因为我浪费了一整天的时间在想继续上面的内容会对我有帮助:)谢谢你,巴德@Ps2goat请您添加您的答案,但也包括我的链接,因为它是最终指南:)。。。那你应该帮助别人!