我们已经有了自己的数据库,已经有users
,roles
,userrole
个表,只是在.net中发现了身份系统。
我想集成应用程序cookie身份验证,但无法理解此身份模型中的不同概念。不一定需要允许集成到第三方的OWIN适配器。由于我们不需要与第三方集成,我们只需要在我们的系统中进行内部加密的cookie身份验证,这是我们真正需要的。
有人能帮助我掌握这些模型背后的概念吗?我已经读过他们每个人,但仍然对他们感到困惑。
目前我看到了许多身份模型:
Users, Logins, Claims, Roles
roles
表格会使用Roles
或Claims
模型吗?Logins
和Users
,但每位用户只能登录一次。在这种情况下会怎么做?启动应用程序创建的示例表比需要的要复杂得多。由于我们不需要许多功能,因此它们很好,它们已经存在,但是2-form身份验证,短信验证等等。一切都不需要。这是一个内部系统。
上周我试图抓住这个模型并且仍然遇到麻烦。如果有人能指出我正确的方向,那将会很有帮助。
答案 0 :(得分:2)
用户非常直接,所以我们会跳过这个。登录是外部身份验证附件。根据Identity与第三方身份验证提供程序一起使用的方式,您可以使用没有附加用户的登录,没有附加登录的用户或具有附加登录的用户。它是与您的网站(登录)进行身份验证和成为您网站(用户)的注册成员之间的区别。
声明只是与用户关联的数据。一般来说,这些都是短暂的 - 在用户永久存储的事情是没有意义的。例如,过期的第三方授权令牌在数据库中实际保存到用户没有意义
角色只是权限集。人们在角色方面采用不同的方式,但从技术上讲,角色只是定义了用户可能拥有的某种能力,例如" CanEdit"," CanView"," CanDelete",您经常会看到人们更多地将它们用作群组:"管理员","编辑","贡献者"等等,它们抽象地定义用户权限。
OWIN是Identity的核心组件。它不是你可以选择或选择的东西。如果您不想使用第三方身份验证功能,那么请注意,但包含它不是问题。
最后,身份相当自以为是。可以将用户数据迁移到特定于身份的构造中,但是让Identity只使用现有的用户表是不可能的。我不确定这是不是你真正的意思,但如果确实如此,那就别忘了。您可以自定义单个标识模型以在数据库中包含更多信息,但通常,如果要使用标识,则需要找到将数据映射到标识提供的方法的方法。