我可以在哪里插入自定义提供程序来设置请求上下文?
我想在" slave"中运行ASP.NET MVC应用程序。模式,同时逐步过渡遗留系统的功能。每个请求都有一个cookie,我想获取cookie,进行外部调用以将其解析为用户身份,并为请求的其余部分设置该用户身份。
我可能会设置一个表单身份验证cookie,或者使用Session,但是每次请求时,关于身份验证的真相来源都必须是外部设置的cookie。
最好的方法是什么?我在哪里插上?我已经查看了身份验证提供程序和Authorization属性,但这些都不适合这个。
答案 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中更改您喜欢的任何值注入你自己的