可以通过的来访问控制器的。后者存储在中。
User
HttpContext
ControllerContext
设置用户的最简单方法是为构造的用户分配不同的HttpContext。我们可以
DefaultHttpContext为此目的使用,这样就不必模拟所有内容。然后,我们仅在控制器上下文中使用该HttpContext并将其传递给控制器实例:
var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]{ new Claim(ClaimTypes.Name, "example name"), new Claim(ClaimTypes.NameIdentifier, "1"), new Claim("custom-claim", "example claim value"),}, "mock"));var controller = new SomeController(dependencies…);controller.ControllerContext = new ControllerContext(){ HttpContext = new DefaultHttpContext() { User = user }};创建自己的时
ClaimsIdentity,请确保将显式传递
authenticationType给构造函数。这确保了它
IsAuthenticated可以正常工作(以防您在代码中使用它来确定用户是否已通过身份验证)。



