在同一请求中设置httpcontext.user,而无需重定向-Asp.Net MVC / Owin

时间:2019-01-02 11:00:05

标签: asp.net asp.net-mvc owin forms-authentication

我想使用下面的代码模拟用户,过滤器会在执行操作之前进行模拟。

如果我理解正确,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;
    }
}

0 个答案:

没有答案