C# ASP.NET标识-代表某人执行操作

C# ASP.NET标识-代表某人执行操作,c#,asp.net-mvc,asp.net-identity,C#,Asp.net Mvc,Asp.net Identity,我有几个BL函数可以通过从httpContext.User属性读取数据来检查谁在调用一个方法。当用户真正登录到系统时,它工作得非常好 我希望允许用户计划稍后运行的操作。一旦用户要求稍后发送电子邮件,我会将请求写入DB,我开发的自动化服务将在正确的时间通过http调用执行它,如: 由于自动化过程不会在客户端发生,因此用户未登录到系统,因此操作SendEmail将不会运行,因为httpContext.user属性将为null 由于url中的参数Requestid,我可以解析创建请求的用户ID,并且我

我有几个BL函数可以通过从httpContext.User属性读取数据来检查谁在调用一个方法。当用户真正登录到系统时,它工作得非常好

我希望允许用户计划稍后运行的操作。一旦用户要求稍后发送电子邮件,我会将请求写入DB,我开发的自动化服务将在正确的时间通过http调用执行它,如:

由于自动化过程不会在客户端发生,因此用户未登录到系统,因此操作SendEmail将不会运行,因为httpContext.user属性将为null

由于url中的参数Requestid,我可以解析创建请求的用户ID,并且我希望将ASP.NET标识模拟为该用户的标识,并且GetUserId()扩展方法也可以工作(因为模拟不影响此类方法)

我在这里看到的所有答案都解释了如何通过创建控制器实例来模拟身份以进行单元测试,但这种情况有所不同,因为当服务器收到请求时,我需要在控制器操作中模拟身份


你能建议怎么做吗?

Jasen可能是重复的,不是重复的。您提到的链接还将创建自动验证cookies,我正在寻找一种模拟httpcontext的方法。为什么您要调用控制器方法来发送电子邮件。这应该只是一个单独的后台服务-如果用户当时登录,这没有什么区别