在Global.aspx中停止异步调用

时间:2016-10-19 14:20:28

标签: c# asp.net-mvc

我在一个解决方案中有两个mvc应用程序。

现在我需要在用户从一个应用程序重定向到另一个应用程序时维护会话。

所以我的逻辑是什么,

  • 在网址中传递了GUID。

  • 使用Init()方法在另一个项目Global.asax文件中获取GUID。

  • 登录其他用户。

我完成了整个代码,在下面添加。

现在,我在Init()方法中调用了它,但它也调用了在URl中传递的其他方法。

即。 call变为asynch,因此,用户被重定向到其他页面。

我需要更改逻辑还是代码? 下面是我的Global.asax文件代码。

 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 :(得分:0)

经过8个多小时的R& D,我找到了真正帮助我的解决方案。

实际上我的方式是正确的,但方法不对。

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..
        }
    }
}