私は独自の認証システム(https://bitbucket.org/anton_gogolev/octalforty-structural)を持っており、標準のASP.NETのものを使用していません(<authentication mode="None" />
)。
プレーンIHttpModule
sを使用してその仕事をします:BeginRequest
着信Cookieとセットを検査HttpContext.Current.User
しThread.CurrentPrincipal
、認証が成功すると
Thread.CurrentPrincipal = HttpContext.Current.User =
new GenericPrincipal(tokenIdentity,new string[] { });
一方EndRequest
、認証されたユーザーに必要なすべてのCookieを発行します。
これは数か月間正常に機能していますが、一部のシステムでは(実際に機能するシステムとどのように異なるのかわかりません)、ASP.NETはの値を失い、HttpContext.Current.User
デフォルト値に置き換えているようです(に設定してGenericPrincipal
集約GenericIdentity
するなど)。IsAuthenticated
false
だから問題は、どうやってそしてなぜHttpContext.Current.User
迷子になっているのかということです。