2016-05-26 67 views
0

私は2つのコントローラTokkenIssuerとLoginを持っています。 TokkenIssuerのメソッドAに[authorize]を使用しましたが、これはログインコントローラのビューとログインコントローラのログインアクションにかかります。User.Identity.IsAuthenticatedは、フォーム認証とsetauthcookieが成功した後でもfalseです。

ログインコントローラー:

public ActionResult Login(string user,string password,string returnUrl) 
    { 
     FormsAuthentication.SetAuthCookie(user, true); 
     if (FormsAuthentication.Authenticate(user, password)) 
     { 

      if (string.IsNullOrEmpty(returnUrl) && Request.UrlReferrer != null) 
       returnUrl = Server.UrlEncode(Request.UrlReferrer.PathAndQuery); 

      return RedirectToAction("B", "TokenIssuer"); 
     } 
     return View(); 
    } 

ログインから私はTokenissuerコントローラでredirectingtoactionのBです。 私はUser.Identityを知りました.IsAuthenticatedは、別のコントローラにリダイレクトした後にtrueになりますが、Userオブジェクトを取得できず、リダイレクトされたコントローラ(TokenIssuer)でUser.Identity.IsAuthenticatedがtrueであると判断できません。

TokenIssuerコントローラ

[Authorize] 
    public ActionResult A()   //takes to Login view 
    { 
    return View();  
    } 
    public ActionResult B()   //Redirected from Login controller 
    { 
     if(User.Identity.IsAuthenticated)     // Getting False 
     { 
      string user = User.Identity.Name; 
     } 
    } 

どのようにこの問題を解決するには?

答えて

0

問題を見つけるのに多くの時間がかかりました。

私が知りたかったのは、VS 2013以降では、デフォルトでWebアプリケーションを作成するときに、web.configファイルに次のコードを追加してフォーム/クレームベースの認証を無効にしてユーザーオブジェクトを作成します。

<module> 
    <remove name = "FormsAuthentication"/> 
</module> 

だからコメントや削除。これは私を助けました。

関連する問題