我有很少的BL函数可以通过从httpContext.User属性中读取数据来检查谁在调用方法。当用户真正登录系统时,它非常有用。
我想允许用户安排稍后运行的操作。一旦用户要求稍后发送电子邮件,我正在向DB写入请求,我开发的自动化服务将在适当的时间通过进行http调用来执行它:https://mysystem.lan/SendEmail/?Requestid=122d8f273465。
由于自动化过程不会发生在客户端,因此用户未登录系统,因此不会运行SendEmail操作,因为httpContext.User属性为null。
由于url中的参数Requestid,我可以解析创建请求的UserId,我想模拟ASP.NET Identity作为该用户的身份,并且GetUserId()扩展方法也可以工作(因为嘲笑不影响那种方法。)
我在这里看到的所有答案都解释了如何通过为单元测试创建控制器实例来模拟身份,但这种情况不同,因为我需要在服务器获取请求时模拟控制器操作内部的身份{ {3}}
你能建议怎么做吗?