我们要设置Thread.CurrentCulture
我们应该选择哪个正确的扩展点?
动作过滤器为时已晚,Global.asax为时尚早(用户尚未授权)。谁有好主意?
答案 0 :(得分:2)
您可以使用AuthorizationFilter
,只需扩展内置功能。在授权时,您将能够判断他们是否获得授权并相应地执行您的逻辑。
public class CustomAuthAttribute : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
bool isAuthorized = base.AuthorizeCore(httpContext);
if (isAuthorized)
{
// set culture if user is authorized
}
else
{
// set culture if user is not authorized
}
return isAuthorized;
}
}
答案 1 :(得分:2)
Global.asax太早了
Global.asax的事件发生在请求生命周期的各个点,有些太早(BeginRequest),有些太晚(EndRequest),也许是适合您需求的事件。
也许是PostAuthorizeRequest
的处理程序,或者如果你想在Session中存储东西,PostAcquireRequestState
会这样做吗?