2010-04-23 66 views
0

我正在使用一个asp.net 2.0站点(称为站点1),该站点中有一个iframe,它加载了另一个站点(站点2),它也是一个asp .net网站,由我们的团队开发。当您登录到站点1时,站点2后面的站点也会登录,这样当您单击iframe选项卡时,将显示站点2,并且用户已登录(以防止用户必须登录两次)。Asp.Net 2综合站点如何以编程方式注销第二个站点

我遇到的问题是,当用户注销站点1,然后我们调用一些清理方法来执行FormsAuthentication.SignOut和清理会话变量等,但此刻当站点2上的用户没有调用清理。所以问题是如果用户在浏览器中打开站点2,则打开站点2,用户仍然登录,这是不希望的。任何人都可以给我一些关于这个最好的方法的指导?一个可能的方法,我虽然只是点击登出按钮,我可以打电话给网站2上的自定义页面,它会做注销。下面

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我仍然通过身份验证。任何想法,采取不同的方向等?请让我知道,如果你需要任何更多的信息,或者如果我说我的东西剂量是有道理的。

谢谢

回答

1

如何使用同一个cookie的双方?如果您的网站登录到同一个成员资格数据库,则以下链接提供了一个简单的解决方案,无需登录和清除同步代码。

只是snyc窗体身份验证(同一个域中,相同的名称),并使用相同的(固定)的machineKey。

相关问题