扩展AspNetUsers的配置文件和角色等 - VS2013

时间:2013-11-14 02:08:23

标签: c# asp.net-mvc entity-framework authentication authorize-attribute

我需要一种方法:

  • 可以管理所有用户的超级管理员用户。
  • 注册/登录表单,允​​许用户注册用户名和密码,并使用
  • 登录
  • 注册后,可以在其个人资料中添加更多详细信息。

我知道MVC 4.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; }
}

这一切听起来是对的还是我错过了一些技巧?

如何向用户添加角色?这对我来说是全新的(在使用此框架方面)。所以说,我需要将自己添加为superadmin,我需要一个superadmin角色。

然后我需要这样做,以便任何人都可以作为成员角色注册申请...

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

我理解这里的物流,但是为我添加角色给用户并将个人资料链接到用户的示例将会出现在我身上!


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

1 个答案:

答案 0 :(得分:2)

有很多方法可以通过提供商实现这一点。

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

这是一个帮助@JamesT的链接,而不是个人资料提供者的技术“描述”(MS缺乏详细信息):http://blogs.msdn.com/b/webdev/archive/2013/10/16/customizing-profile-information-in-asp-net-identity-in-vs-2013-templates.aspx