2

ユーザーが有効な認証 Cookie を持っているが、アカウントが (別の場所から) 削除されていると考えてください。

WebSecurity.IsAuthenticated

true を返します。

WebSecurity.CurrentUserName

アカウントが削除されているにもかかわらず、ユーザーのユーザー名を返します。おそらく、この情報は認証 Cookie で暗号化されています。

IsAuthenticated結局のところ、現在の HttpContext のリクエストから回答を取得します。

this._context.User.Identity.IsAuthenticated

したがって、軽減するには:

 var userName = WebSecurity.CurrentUserName;
 using (var userDb = new UsersContext())
 {
     var usr = userDb.UserProfiles.SingleOrDefault(u => u.UserName == userName);
     if(usr == null)
     {
         WebSecurity.Logout();
     }
 }

しかし、この後でも:

 WebSecurity.IsAuthenticated == true
 WebSecurity.CurrentUserName == "myDeletedUser'sName"

これはあまり役に立ちません。

この情報をクリアして、WebSecurity にユーザーの認証状態を再評価させるにはどうすればよいですか? この状態をリセットするためだけに、本当にそれらを自分のサイトにリダイレクトする必要がありますか? 彼らが投稿したと仮定しますか?それはピタです。

4

0 に答える 0