我想使用下面的代码模拟用户,过滤器会在执行操作之前进行模拟。
如果我理解正确,Authentication.SignIn()
将使响应中带有cookie,这将使用户能够根据下一个请求进行身份验证。但是,我不想往返。过滤器对用户进行身份验证/模拟后,应立即通过HttpContext.Current.User
在操作中使用过滤器。
我该怎么做?
public class ImpersonationFilter:ActionFilterAttribute
{
HttpContextBase context;
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//login user
context.Request
.GetOwinContext()
.Authentication
.SignIn();
}
}
[ImpersonationFilter]
public class HomeController : Controller
{
public ActionResult Index()
{
var user = HttpContext.Current.User;
}
}