我们需要在新项目上使用 Windows 身份验证。因此,我们将在动作方法上使用 AuthorizeAttribute,也许还会在有限数量的控制器动作中使用。
效果很好,当然。但是要对此进行测试(无论是在单元测试中,还是在我集成这些东西时进行手动测试),我需要能够模拟具有任何角色的用户,并在不同角色之间频繁地来回切换。
我无法修改控制器的 User 对象(它是只读的),所以我可以从哪里插入一个实现 IPrincipal 的假用户,该用户可以在我的应用程序的任何地方访问,包括:
- 在控制器动作中
- 在自定义属性中
我还没有深入研究 DI 框架——此时有必要吗?如果您强烈推荐,我仍然想知道如何通过“穷人”的 DI 做到这一点。