2016-10-19 10 views
0

私は1つのソリューションに2つのmvcアプリケーションを持っています。Global.aspxの非同期呼び出しを停止する

ここでは、ユーザーがあるアプリケーションから別のアプリケーションにリダイレクトするときにセッションを維持する必要があります。私のロジックが何であるかを

ので、

  • はURLにGUIDを可決しました。

  • Init()メソッドを使用して、別のプロジェクトのGlobal.asaxファイルでGUIDを取得します。

  • 別のユーザーでログインします。

私は以下のコードを追加しました。

私はInit()メソッドを呼び出していますが、URlで渡される他のメソッドも呼び出しています。

つまり、コールはasynchになります。そのため、ユーザーは別のページにリダイレクトされます。

ロジックを変更するか、コードを変更する必要がありますか?下記の は私のGlobal.asaxファイルコードです。 R & Dのより、その後8時間後

public override void Init() 
    {    
     var userId = Guid.Parse(Request["UserGUID"].ToString()); 
     if (userId != null && userId == Guid.Parse("1B541D9A-AC3E-466F-897B-6F9033F4533C")) 

     //my logic of login management 
    } 
+1

あなたの質問は何ですか? –

+0

@AshleyMedway:上記のコードは非同期になるため、非同期呼び出しを停止してInit()メソッドを実行できるソリューションが必要です。 – Bharat

答えて

0

、私は本当に私を助けて解決策を見つけました。

実際、私の方法は適切ですが、方法は正しくありません。

Application_AcquireRequestState

私のシナリオのための適切な方法です。

私のコードは次のとおりです。

public class MvcApplication : System.Web.HttpApplication 
{ 
    protected void Application_Start() 
    { 
     AreaRegistration.RegisterAllAreas(); 
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
     BundleConfig.RegisterBundles(BundleTable.Bundles); 
    } 

    public void Application_AcquireRequestState(object sender, EventArgs e) 
    { 
     var userId = HttpContext.Current.Request["UserGUID"]; 

     if (userId != null) 
     { 
      Session["UserGuid"] = Guid.Parse(userId.ToString()); 

      //My logic for session handling.. 
     } 
    } 
} 
関連する問題