【问题标题】:extending the AspNetUsers with profiles and roles etc - VS2013使用配置文件和角色等扩展 AspNetUsers - VS2013
【发布时间】:2013-11-26 21:43:33
【问题描述】:

我需要一种方式来拥有:

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

我知道 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 模型定义新属性?

【问题讨论】:

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


【解决方案1】:

有一些方法可以通过提供者来实现。

您已经在使用默认的 MembershipProvider,为什么不看看配置文件提供者? http://msdn.microsoft.com/en-us/library/014bec1k.ASPXmsdn.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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    相关资源
    最近更新 更多