1

我需要一种方法:

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

我知道 MVC 4.0 - 5.0 具有 [AuthorizeAttribute] 并且我想利用 Microsoft 的安全性,而不是使用一些易于破解并让其他开发人员想哭的蹩脚用户表来散列我的方式。

所以我可以看到有一个名为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; }
}

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

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

然后我需要这样做,以便任何人都可以作为成员角色注册到应用程序......

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

我了解这里的后勤工作,但是为用户添加角色并将配置文件链接到用户的示例对我来说很合适!


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

4

1 回答 1

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-信息-in-asp-net-identity-in-vs-2013-templates.aspx

于 2013-11-15T15:39:58.197 回答