2016-03-28 12 views
1

MVC 4アプリケーションコントローラ側では、ユーザーIDマージセッションのチェックをチェックするために、どのようにIsPostbackを使用できますか?コードの下のように:それは、現在のページの同じかMVC 4コントローラ側でIsPostbackを使用する方法

private bool IsPostBack() 
    { 
     bool isPost = string.Compare(Request.HttpMethod, "POST", 
     StringComparison.CurrentCultureIgnoreCase) == 0; 
     if (Request.UrlReferrer == null) return false; 

     bool isCurrentUrl = string.Compare(Request.Url.AbsolutePath, 
     Request.UrlReferrer.AbsolutePath, 
     StringComparison.CurrentCultureIgnoreCase) == 0; 

     return isPost && isCurrentUrl; 
    } 

答えて

1

を進めていますが、URLのリファラを確認することができますこれを行うには、異なるhttpメソッド属性を追加して、コードを2つの異なる関数に分割します。

たとえば、これはと同等ですIsPostBackプロパティ:HTTPメソッドがPOST ある場合ASP.NETのWebで

[HttpGet] 
    public ActionResult Login() 
    { 
     if (Session["UserId"] != null) 
     { 
      return RedirectToAction("Users", "UsersList"); 
     } 
     else 
     { 
      return RedirectToAction("Index", "Index"); 
     } 
    } 

IsPostBackプロパティフォームは、trueを返しています。

ので!IsPostBackプロパティはリクエストメソッドがをGET(しかし、この技術はMVCでWebフォームでないに使用されている)かどうかをチェックするためのものです。

+0

#Fedri Qrueger実際に私の動機は、ログインが成功した初めてのユーザーログインです。セッションに自分のユーザーIDを格納しています。その後、アプリケーションから直接実行されたページの後に、ユーザーIDがセッションを管理しているかどうかを確認します。私はログインページに他の賢明な行為ページ、この種のフロー –

+0

にリダイレクトされている場合は、カスタム認証属性を使用すると考えられます。 http://www.bradygaster.com/post/custom-authentication-with-mvc-3.0 とWeb構成 <認証モード= "フォーム">で設定 <フォームloginUrl = "/アカウント/ログイン" />

+0

#Fedri Qrueger申し訳ありませんが、これは私が正確に見ている方法ではありません、私のサンプルコードの種類の上のような他の方法があります。 –

0

正しい方法のであれば

 if (!IsPostback) 
     { 
      if (Session["UserId"] != null) 
      { 
       return RedirectToAction("Users", "UsersList"); 
      } 
      else 
      { 
       return RedirectToAction("Index", "Index"); 
      } 
     } 

いずれかidea.Thanksが

関連する問題