ASP.NET MVC请求上下文详细信息

时间:2012-06-20 19:18:41

标签: asp.net-mvc authentication

我可以在哪里插入自定义提供程序来设置请求上下文?

我想在" slave"中运行ASP.NET MVC应用程序。模式,同时逐步过渡遗留系统的功能。每个请求都有一个cookie,我想获取cookie,进行外部调用以将其解析为用户身份,并为请求的其余部分设置该用户身份。

我可能会设置一个表单身份验证cookie,或者使用Session,但是每次请求时,关于身份验证的真相来源都必须是外部设置的cookie。

最好的方法是什么?我在哪里插上?我已经查看了身份验证提供程序和Authorization属性,但这些都不适合这个。

2 个答案:

答案 0 :(得分:1)

我原本认为HttpModule对于这种情况是理想的吗?

如果我理解正确,我最近在一个项目上做了类似的事情:

  public class UserSessionHttpModule : IHttpModule
{

    private HttpApplication mApplication;

    public void Dispose()
    {
    }

    public void Init(HttpApplication context)
    {
        mApplication = context;
        context.BeginRequest += new EventHandler(CheckUserSession);
    }

    private void CheckUserSession(Object sender, EventArgs e)
    {
        var extension = Path.GetExtension(mApplication.Context.Request.Path);

        if (extension == "" || extension == ".aspx")
        {
            var userSessionService = ObjectFactory.GetInstance<IUserSessionService>();
            userSessionService.CheckUserSession();
        }

    }
}

答案 1 :(得分:0)

您可以覆盖Init页面中的Global.asax方法,然后收听PostAuthenticateRequest事件,这些事件会在身份验证后触发,因此您可以从表单身份验证Cookie中更改您喜欢的任何值注入你自己的