私は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;
}
}
どのようにこの問題を解決するには?