背景信息 我们开发了3个独立的ASP.NET应用程序,现在也作为套件出售。客户可以订购1,2或所有应用程序。
作为独立应用程序,这给我们带来了挑战,我们并不完全确定如何解决它:身份验证。应用程序都有自己的Indentity实现,这会强制客户创建每个用户帐户3次,并且用户需要为每个应用程序单独登录。因此,客户端请求实施SSO。
问题: 我们已经对SSO做了一些研究,Thinktecture IdentityServer看起来非常好,能够解决我们的问题。但是,用户连接到应用程序中的某些实体。我们遇到了一些问题:
可能我们完全走错了路 - 有没有其他解决方案可以解决我们面临的问题?非常感谢提前..
答案 0 :(得分:1)
首先,请记住,vs2013网页模板中有OWIN Authorization server,如果您愿意,可以将其拆分为独立服务器。换句话说,Thinktecture服务器并不是您唯一的选择,尽管它更强大且功能更全。
为了解决您手头的问题,我想到了几个选项:
答案 1 :(得分:0)
你需要关闭一个DBA并以不同的方式看待事物。外键仅在关系数据库中可用,即使数据库位于同一服务器上,您也无法始终链接到其他数据库中的实体。
所以放开“外键”要求,只需使用用户名或UserIds(可能是GUID)将域对象与用户关联起来。
至于第二个要求 - 我不确定问题是什么。如果您说您需要为尚不存在的用户创建域实体,那么无论如何您都被搞砸了 - 您无法使用不存在的东西。简单的答案是首先在Identity Server中创建Users,然后为该用户创建域实体。然后,您可以更改用户属性并为真人提供用户名/密码以供使用。