使用身份模型与自定义方法



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


几个问题:

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

提前谢谢。

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

  2. 是的。部署到生产环境中的方式与部署常规数据库的方式相同。

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

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

关于角色与索赔。在Identity框架中,角色是一种声明类型。不要太在意,这只是相似事物的不同名称。我强烈建议学习"MS方式",让身份发挥作用(如果你不需要,你不必使用声明,角色会像过去一样发挥作用),忘记MembershipProvider是噩梦般的遗产。

相关内容

  • 没有找到相关文章

最新更新