C# 使用标识模型与自定义方法

C# 使用标识模型与自定义方法,c#,asp.net,webforms,authorization,asp.net-identity,C#,Asp.net,Webforms,Authorization,Asp.net Identity,因此,我需要将用户身份验证添加到我正在构建的web应用程序中—web表单,而不是MVC—并且一直在尝试阅读Microsoft提供/开发的带有用户和角色或声明的身份模型—我更喜欢角色,但看起来MS希望每个人都切换到声明。虽然我知道它有内置的功能,但我想知道,在加载页面时,是否只需对密码进行加密和散列,给用户一个软件定义的“角色”,并测试用户的角色就可以了。或者我真的应该试着用微软的方式来做?也许我只是不太了解MS的框架,无法实现 几个问题: 用户、角色等存储在哪里?我相信这些都放在自定义生成的数

因此,我需要将用户身份验证添加到我正在构建的web应用程序中—web表单,而不是MVC—并且一直在尝试阅读Microsoft提供/开发的带有用户和角色或声明的身份模型—我更喜欢角色,但看起来MS希望每个人都切换到声明。虽然我知道它有内置的功能,但我想知道,在加载页面时,是否只需对密码进行加密和散列,给用户一个软件定义的“角色”,并测试用户的角色就可以了。或者我真的应该试着用微软的方式来做?也许我只是不太了解MS的框架,无法实现


几个问题:

  • 用户、角色等存储在哪里?我相信这些都放在自定义生成的数据库中,但是在哪里呢
  • 此数据库是否易于移动到生产数据库
  • 如何编辑角色以使其特定于我的应用程序?显然,MS已经放弃了使这个过程更容易的配置工具。我可以下载旧版本的VisualStudio来访问该工具,但这似乎相当麻烦
  • 大的那个。我猜如果我创建自己的独立集成授权系统,我将无法使用webconfig授权访问
  • 提前谢谢

  • 存储用户/角色/声明的位置是可配置的。默认的实体框架实现是将数据存储在SQL数据库中。如果您在本地运行它,它将使用默认模板创建LocalDB数据库。您可以将其配置为使用现有的SQL Server数据库。
    有些项目允许您将这些数据保存在RavenDb、MongoDb、AzureTables和MySql中;我甚至看到讨论将web.config作为单一管理员用户的定义

  • 对。部署到生产环境的方式与部署常规数据库的方式相同

  • 我已经把你说的那个工具处理掉了。即使你下载了它,它也不会以新的方式工作。您可以选择自己编写角色管理,直接进入DB并在那里创建角色(如果是一次性工作)。或者使用这个工具(不过要小心,它还不能嵌入到其他应用程序中)

  • 在Identity Framework中,您不使用web.config来配置任何内容。除了连接字符串。您可以构建自己的
    UserManager
    实现,该实现将从
    web.config
    获取配置参数

  • 关于角色与索赔。在身份框架中,角色是一种声明类型。不要太在意它,它只是相似事物的不同名称。我强烈建议学习“微软之路”,让身份工作起来(如果你不需要它们,你不必使用声明,角色也会像以前一样工作),忘记MembershipProvider是噩梦般的遗产。

    发现#1存储在本地SQL db中。