Thread.CurrentCulture を設定したい
- ASP.NET MVC モデル バインダー/バリデーターが実行される前(もちろん)、しかし
- ユーザーが承認された後(UserSettings テーブルからカルチャをロードしたいため)
正しい拡張ポイントは何ですか?
アクション フィルターが遅すぎます。Global.asax が早すぎます (ユーザーはまだ承認されていません)。良いアイデアを持っている人はいますか?
Thread.CurrentCulture を設定したい
正しい拡張ポイントは何ですか?
アクション フィルターが遅すぎます。Global.asax が早すぎます (ユーザーはまだ承認されていません)。良いアイデアを持っている人はいますか?
を使用して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;
}
}
Global.asax は早すぎる
Global.asax には、要求のライフ サイクルのさまざまな時点で発生するイベントがあり、早すぎるもの (BeginRequest) や遅すぎるもの (EndRequest) など、要件に合ったイベントが発生する可能性があります。
たぶん、のハンドラーPostAuthorizeRequest
、またはセッションに何かを保存したい場合PostAcquireRequestState
はどうでしょうか?