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

时间:2014-09-14 13:05:37

标签: c# asp.net webforms authorization asp.net-identity

所以我需要将用户身份验证添加到我构建的Web应用程序 - Web窗体,而不是MVC - 并且一直在尝试阅读Microsoft提供/开发的身份模型以及用户和角色或声明 - 我更喜欢角​​色,但看起来MS希望每个人都切换到声明。虽然我知道它具有内置功能,但我想知道它是否只是更简单的盐和amp;哈希密码,为用户提供软件定义的"角色"并在加载页面时测试用户的角色。或者我应该尝试以微软的方式做到这一点?也许我只是不太了解MS的框架。


几个问题:

  1. 用户,角色等存储在哪里?我相信这些都放在自定义生成的数据库中,但在哪里?
  2. 此数据库是否可以轻松移至生产数据库?
  3. 如何编辑角色以使其特定于我的应用程序?显然,MS已经废除了使这个过程更容易的配置工具。我可以下载旧版本的Visual Studio来访问该工具,但这看起来相当麻烦。
  4. 最重要的一个。我猜测如果我创建自己的自包含集成授权系统,我将无法使用webconfig来授权访问?
  5. 提前致谢。

1 个答案:

答案 0 :(得分:0)

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

  2. 是。以部署常规数据库的方式部署到生产中。

  3. MS已经处理了您正在谈论的工具。即使您下载它,它也无法使用新的方式。您可以选择自己编写角色管理,直接进入DB并在那里创建角色(如果是一次性工作)。或者使用Brock Allen's IdentityManager工具(但要注意,这还不能嵌入到其他应用程序中)。

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

  5. 关于角色与声明。在Identity框架中,角色是一种声明。不要过多地抓住它,它只是类似事物的不同名称。我强烈建议学习“MS-way”并让Identity工作(如果你不需要它们就不必使用声明,角色将像以前一样工作)并忘记MembershipProvider作为噩梦般的遗产。 / p>