在同一IIS服务器上的两个web应用程序之间共享会话

本文关键字:web 两个 应用程序 之间 会话 共享 IIS 服务器 | 更新日期: 2023-09-27 17:54:14

我有一个MVC 2.0开发的web应用程序。我为这个web应用程序创建了一个动态数据网站。对于访问动态数据网站,用户被重定向到MVC应用程序的登录页面。

登录时,为用户创建会话。我想在我的动态数据网站上访问这个会话,以检查用户的角色和用户名。如果用户具有admin角色,则只有user可以访问动态数据网站。

我怎样才能做到这一点?

在同一IIS服务器上的两个web应用程序之间共享会话

试试这个解决方案:

在您的第一个Web应用程序(用户用于登录的那个)

 //create a method that will redirect to your web app 2
    public ActionResult RedirectToAnotherSite(string name, string role)
    {
        //specify the IP or url for your web app 2
        //pass the parameters
        var rawUrl = string.Format("http://localhost:8051?name={0}&role={1}", name, role);
        return Redirect(rawUrl);
    }

在你的web应用2(动态)打开文件Global。查找并添加以下代码

 void Application_BeginRequest(object sender, EventArgs e)
        {
            //get the passed parameters
            var req = ((HttpApplication)(sender)).Request;
            var name = req.QueryString["name"] ?? string.Empty;
            var role = req.QueryString["role"] ?? string.Empty;
            //check the role
            if (!role.Equals("admin"))
            {
                //return http access denied
                var res = ((HttpApplication)(sender)).Response;
                res.StatusCode = 401;
            }
        }