目前我正在与ASP合作。NET MVC 5和用于身份验证和授权的新Identity 2框架。基于这些原则,我实现了一个自定义的基于索赔的系统,它能够通过传递一个区域和一个操作来检查用户操作是否被允许(例如,区域是预订,操作是创建)。
现在我需要扩展系统,以便在多租户应用程序中使用它,该应用程序通过url子路径区分租户。(例如:https://www.mydomain.com/tenant1/{controller}/{action}
.
Identity框架无法基于特定的url子路径设置cookie。在每个地方,我试图钩和设置cookie路径失败。
我的第二个用例是授予用户一组操作的临时权限,而不需要随后注销。如果cookie被禁用,这应该也能工作。
我决定从头重写认证系统来满足我的需求。实现无cookie临时登录的最佳方法是什么?故事:用户想要预订。因此,他必须经过身份验证才能浏览向导(2或3个异步服务器请求)。完成向导后,用户必须在没有任何交互的情况下注销。创建的令牌必须无效(用于kiosk模式)。
对于这个场景存在什么样的原则和最佳实践?有类似用例的经验吗?
查看MembershipReboot项目。它支持开箱即用的多租户模式。MembershipReboot
编写自定义认证框架是你最不应该做的事情,除非这是你的主要业务。