在global.asax中,添加
AuthenticateRequest
. 在这种方法中,表单身份验证已经发生,您可以在发生任何其他事情之前自由修改当前主体。
protected void Application_AuthenticateRequest(object sender, EventArgs e) {
IPrincipal principal = HttpContext.Current.User;
if (!UserStillValid(principal)) {
IPrincipal anonymousPrincipal = new GenericPrincipal(new GenericIdentity(String.Empty), null);
Thread.CurrentPrincipal = anonymousPrincipal;
HttpContext.Current.User = anonymousPrincipal;
}
}
只需执行
UserStillValid
方法,你就完成了。如果需要的话,它也是一个交换通用主体和自定义主体的好地方。