C# Asp.NET2集成站点如何以编程方式注销第二个站点

C# Asp.NET2集成站点如何以编程方式注销第二个站点,c#,.net,asp.net,C#,.net,Asp.net,我正在使用一个asp.net 2.0站点(称为site 1),其中包含一个iframe,用于加载另一个站点(site2),该站点也是我们团队开发的asp.net站点。当您登录到站点1时,幕后站点2也会登录,因此当您单击iframe选项卡时,将显示用户登录的站点2(以防止用户必须登录两次) 我遇到的问题是,当用户从站点1注销时,我们调用一些清理方法来执行FormsAuthentication.SignOut和clean会话变量等,但当用户在站点2上时,目前没有调用清理。因此,问题是,如果用户从浏览

我正在使用一个asp.net 2.0站点(称为site 1),其中包含一个iframe,用于加载另一个站点(site2),该站点也是我们团队开发的asp.net站点。当您登录到站点1时,幕后站点2也会登录,因此当您单击iframe选项卡时,将显示用户登录的站点2(以防止用户必须登录两次)

我遇到的问题是,当用户从站点1注销时,我们调用一些清理方法来执行FormsAuthentication.SignOut和clean会话变量等,但当用户在站点2上时,目前没有调用清理。因此,问题是,如果用户从浏览器中打开站点2,那么站点2将打开,而用户仍在登录,这是不需要的。有人能给我一些关于这方面的最佳方法的指导吗??我想到的一种可能的方法是,只要单击注销按钮,我就可以调用Site2上的自定义页面,这样就可以注销。代码如下

    HttpWebRequest request;
    request = ((HttpWebRequest)(WebRequest.Create("www.mywebsite.com/Site2Logout.aspx")));
    request.Method = "POST";
HttpCookie cookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
Cookie authenticationCookie = new Cookie(
FormsAuthentication.FormsCookieName,
                            cookie.Value,
                cookie.Path,
                HttpContext.Current.Request.Url.Authority);
request .CookieContainer = new CookieContainer();
request .CookieContainer.Add(authenticationCookie);
response.GetResponse();
这段代码的问题是,当我在站点2上运行它并调试时,检查用户是否经过身份验证,我不理解,因为如果我打开浏览器并浏览到站点2,我仍然经过身份验证。有什么想法、不同的方向等吗???请让我知道,如果你需要任何更多的信息,或者如果我说的话没有意义


谢谢

两边用同一块饼干怎么样?如果您的站点登录到同一成员数据库,则以下链接提供了一个简单的解决方案,无需同步代码即可进行登录和清理

只需snyc表单身份验证(相同的域、相同的名称)并使用相同的(固定的)machineKey即可