无法迁移到Asp.Net Identity / OWIN

时间:2015-12-11 14:16:05

标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-identity

我们已经有了自己的数据库,已经有usersrolesuserrole个表,只是在.net中发现了身份系统。 我想集成应用程序cookie身份验证,但无法理解此身份模型中的不同概念。不一定需要允许集成到第三方的OWIN适配器。由于我们不需要与第三方集成,我们只需要在我们的系统中进行内部加密的cookie身份验证,这是我们真正需要的。

有人能帮助我掌握这些模型背后的概念吗?我已经读过他们每个人,但仍然对他们感到困惑。

目前我看到了许多身份模型: Users, Logins, Claims, Roles

  • 我的roles表格会使用RolesClaims模型吗?
  • LoginsUsers,但每位用户只能登录一次。在这种情况下会怎么做?
  • 我需要使用OWIN吗?我不需要第三方集成,看起来很重。
  • 如果用户有某些任意属性(头像,年龄等),会在哪里存储?
  • 关于将我们自己的表/结构集成到Identity模型中的任何其他建议?

启动应用程序创建的示例表比需要的要复杂得多。由于我们不需要许多功能,因此它们很好,它们已经存在,但是2-form身份验证,短信验证等等。一切都不需要。这是一个内部系统。

上周我试图抓住这个模型并且仍然遇到麻烦。如果有人能指出我正确的方向,那将会很有帮助。

1 个答案:

答案 0 :(得分:2)

用户非常直接,所以我们会跳过这个。登录是外部身份验证附件。根据Identity与第三方身份验证提供程序一起使用的方式,您可以使用没有附加用户的登录,没有附加登录的用户或具有附加登录的用户。它是与您的网站(登录)进行身份验证和成为您网站(用户)的注册成员之间的区别。

声明只是与用户关联的数据。一般来说,这些都是短暂的 - 在用户永久存储的事情是没有意义的。例如,过期的第三方授权令牌在数据库中实际保存到用户没有意义

角色只是权限集。人们在角色方面采用不同的方式,但从技术上讲,角色只是定义了用户可能拥有的某种能力,例如" CanEdit"," CanView"," CanDelete",您经常会看到人们更多地将它们用作群组:"管理员","编辑","贡献者"等等,它们抽象地定义用户权限。

OWIN是Identity的核心组件。它不是你可以选择或选择的东西。如果您不想使用第三方身份验证功能,那么请注意,但包含它不是问题。

最后,身份相当自以为是。可以将用户数据迁移到特定于身份的构造中,但是让Identity只使用现有的用户表是不可能的。我不确定这是不是你真正的意思,但如果确实如此,那就别忘了。您可以自定义单个标识模型以在数据库中包含更多信息,但通常,如果要使用标识,则需要找到将数据映射到标识提供的方法的方法。