注册 登录
编程论坛 ASP技术论坛

静夜思版主:问个你以前遇到的ASP问题?

gzsolailai 发布于 2007-12-25 15:54, 1524 次点击
静夜思版主:问个你以前遇到的ASP问题?就是在二级域名中ASP如何传session值的问题?我看到你2005年的帖子了,帮助我一下,我现在也遇到了,已经二个星期了没有解决这个问题?
11 回复
#2
gzsolailai2007-12-25 16:00
这是你以前发的帖子
这是你以前发的帖子
[url]http://bbs.bc-cn.net/viewthread.php?tid=21677&extra=&page=1[/url]
#3
静夜思2007-12-25 16:13
用cookies可以跨二级域名
#4
gzsolailai2007-12-25 16:19
有联系方式吗?具体一点行吗?
有联系方式吗?具体一点行吗?我现在的ASP用session登录的,如何转为COOKIES,然后又如何传COOKIES到另外一个二级域名,然后另外一个二级域名的页面如何知道登录信息呢?我已经想了二个多星期了都没有解决,帮帮我.
#5
gzsolailai2007-12-25 16:26
#6
gzsolailai2007-12-25 16:41
#7
yms1232007-12-25 21:26
我的一个思路,在Ajax出现之前实现这个功能的确困难,但Ajax的出现个人觉得实现起来就不难了。
首先后台做一个验证页面这个页面存储在一个域名下,登陆后这个页面是能够得到Session的,接下来当跨站访问时。利用Ajax在服务器端远程请求另一个域名下的隐藏asp文件,让改文件通过Ajax方法传递到另一个域名下完成跨站点登陆。
#8
yms1232007-12-25 21:39
比如
[url]www.bc-cn.net[/url]下
有这么一个文件
IsLogin.asp
<%
  Response.ContentType="text/xml"
  Response.CharSet="gb2312"
  %><?xml version="1.0" encoding="GB2312"?><%
  With Response
           .Write "<User>"
          IF Session("UserName")<>"" And Session("Password")<>"" Then
              .Write "<Name>"&Session("UserName")&"</Name>"
              .Write "<Password>"&Session("Password")&"</Password>"            
          Else
              .Write "<Name>Null</Name>"
              .Write "<Password>Null</Password>"                  
          End IF
          .Write "</User>"
  End With
%>
这里Password进行MD5级加密,即使有人知道了这个网页,也没有任何用处。
首先Password是MD5级的加密,其次被看见也是自己的用户名和密码没有任何价值。
而且这个网页不接收任何参数,更不可能从网页参数上得到其他人的密码。
#9
yms1232007-12-25 22:03
接下来使用Ajax远程读取这个网页就可以跨站点登陆
比如
blog.bc-cn.net
下检测是否登陆
Verifylong.asp
<%
Function IsCreateActiveXObject(ActiveName)
      On Error Resume Next
      Dim TestObj
      Set TestObj=Server.CreateObject(ActiveName)
      IF Err.Number<>0 Then
           IsCreateActiveXObject=True
      Else
           IsCreateActiveXObject=False
      End IF
      Set TestObj=Nothing
End Function
Dim ObjXMLHTTP
Dim xmlDom
IF IsCreateActiveXObject("Msxml2.ServerXMLHTTP") Then
    Set objXMLHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP")
Else
    IF  IsCreateActiveXObject("Microsoft.XMLHTTP") Then   
     set objXmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
          IF IsCreateActiveXObject("Microsoft.XMLDOM") Then
               set xmlDom=Server.CreateObject("Microsoft.XMLDOM")
          Else
                Response.Redirect "Error.asp?Msg=服务器不支持Microsoft.XMLDOM组件"
          End IF
    Else
          Response.Redirect "Error.asp?Msg=服务器不支持Ajax组件"
    End IF
 End IF
objXmlHttp.open "GET","https://www.bc-cn.net/IsLogin.asp",false
objXmlHttp.send()
xmlDom.loadXml objXmlHttp.responseText
Set RootEml=xmlDom.documentElement
Session("UserName")=RootEml.ChildNodes.Item(0).text
Session("Password")= RootEml.ChildNodes.Item(1).text
IF Session("UserName")="Null" And Session("Password")="Null Then  
     Response.Redirect "Error.asp?Msg=您还没有登陆请先在[url]www.bc-cn.net[/url]登陆"
End IF
%>
#10
gzsolailai2007-12-26 10:52
有点知道意思了,但是实现起来还是很麻烦呀,有没有更直接的方法?
#11
yms1232007-12-26 14:36
目前在ASP中个人没有更直接的办法了,如果是或者是JSP可以使用Web Service来实现跨站点登陆,比这个方法应该是更加的安全(因为或JSP可以把调用代码封装在dll或class文件中,更加难以找到)。
#12
gzsolailai2007-12-27 11:11
能不能登录时用SESSION,然后把SESSION转化为COOKIES然后实现跨站传值呢?
1