0

ユーザーが [記憶する] チェックボックスをオンにすると Cookie を設定するログイン コントローラーがありますが、ユーザーが次回サイトにアクセスして Cookie の有効期限が切れていない場合に設定したいので、製品ページにリダイレクトします。

これがコントローラーアクションです

[HttpPost]
    public ActionResult Index(MyData data)
    {
        if (ModelState.IsValid)
        {
            if (data.UserName == "abc" && data.Password == "123")
            {
                if (data.RememberMe == true)
                {
                    var authTicket = new FormsAuthenticationTicket(1, data.UserName, DateTime.Now, DateTime.Now.AddMinutes(2), data.RememberMe,"");
                    HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(authTicket));
                    Response.Cookies.Add(cookie);
                    return RedirectToAction("Index", "Products");
                }
                else
                {
                    return RedirectToAction("Index", "Products");
                }
            }
            else
            {
                ModelState.AddModelError("", "Invalid User Name & Password");
            }
        }
        return View();
    }

コントローラーのインデックスアクション

  public ActionResult Index()
    {
        if(//logic which is i am asking about)
        {
          return RedirectToAction("Index", "Products");
        }
        return View();
    }
4

2 に答える 2

0
if (ControllerContext.HttpContext.User.Identity.IsAuthenticated) 

は、あなたが必要とすることすべてです。認証 Cookie の復号化と期限切れは、フォーム認証の責任です。

于 2012-05-15T19:46:47.007 に答える
0

これを試しましたか?

if (Request.Cookies[FormsAuthentication.FormsCookieName] != null)
    {
      return RedirectToAction("Index", "Products");
    }
    return View();
}
于 2012-05-15T19:44:06.893 に答える