【解決方法】User.Identity.IsAuthenticated が常に false になるのはなぜですか?

プログラミングQA


やあみんな、
以下のユーザー名を取得したい

<pre lang="c#">

 public ActionResult Login(LoginModel model, string returnUrl)
        {
 if (User.Identity.IsAuthenticated)//this is get always false
            {
string user = User.Identity.Name;//here i need username
            }
  
            if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password,     persistCookie: model.RememberMe))
            {
                return RedirectToLocal(returnUrl);
            }

            // If we got this far, something failed, redisplay form
            ModelState.AddModelError("", "The user name or password provided is incorrect.");
            return View(model);
        }

User.Identity.IsAuthenticated always return false so userid comes always -1, I am not even able to short out my mistake, what mistake am doing and how can i overcome with this, please help me.. 

解決策 1

User.Identity.IsAuthenticated は、FormsAuthentication.SetAuthCookie() を呼び出した後の次の要求まで true に設定されません。

http://msdn.microsoft.com/en-us/library/twk5762b.aspx を参照してください。

SetAuthCookie メソッドは、フォーム認証チケットを Cookie コレクションに追加するか、CookiesSupported が false の場合は URL に追加します。 フォーム認証チケットは、ブラウザによって行われる次のリクエストにフォーム認証情報を提供します。

解決策 2

皆さん、こんにちは。OWIN で Microsoft アカウント認証をテストしていましたが、少なくとも 1 つのコントローラーに Authorize アノテーションを配置する必要があることに注意しました。これが役立つことを願っています

コメント

タイトルとURLをコピーしました