在实现IS4时,我们希望在/Account/Login
表单上有几个额外的字段(我们是基于Quickstart UI构建的)。当调用IProfileService
时,需要访问由这些字段(位置信息-1)建筑物和2)建筑物内的站点提供的数据,因为它们是用于确定{{ 1}}。我们尝试将数据存储在GetProfileDataAsync()
中,但是由于调用HttpContext.Items
之前发生了重定向,因此该数据丢失了。
对于如何将这些数据传递回IProfileService
,您有任何建议吗?
答案 0 :(得分:1)
HttpContext的扩展方法之一SignInAsync允许您传递任何与登录有关的额外声明。如果您在从AccountController调用SignInAsync时添加“ building”和“ building_station”作为声明,则应该可以通过HttpContext访问它。
为此,您需要通过依赖注入将HttpContextAccessor添加到IProfileService实现中,一旦从中获取HttpContext,您就应该能够在HttpContext.User中找到适当的声明。