我想将ASP.NET身份用于在前端使用MVC5设置的项目,并使用物理上分离的业务逻辑服务器。 BL服务器是唯一可以直接访问数据库服务器的服务器。
为了解决这个问题,我想我可以采取以下两种方式之一:
我想也许第一个选项更干净,但我如何在后端Web API上使用声明授权?我希望能够传递某种令牌吗?谁生成它,以及如何让Web API与它一起工作(即从头部拉出access_token并创建一个ClaimsPrincipal)?
我对第二个选项的关注是它没有直接登录呼叫,它只有令牌支持,所以我不知道我是否仍然可以以相同的方式管理用户的登录状态或如果我应该这样做(我需要完全访问常规用户管理的东西,如更改密码,双因素,锁定帐户等)。
对于正确采取措施的任何指导都将不胜感激。
答案 0 :(得分:1)
我最终使用选项1.我从IUser * Store实现进行Web API调用。
我通过使用IdentityServer发出access_token解决了ClaimsPrincipal问题。 Web API很容易使用这些令牌并为我构建我的ClaimsPrincipal,然后我可以使用我想要的声明。就我而言,我使用AuthorizationManager进行集中访问检查。
我希望这有帮助!