[SSO] 單一簽入 SSO by QueryString Part 1

  • 4393
  • 0
  • 2009-08-04

透過QueryString方式在不同網域中共用Session的方式

以下是透過QueryString方式在不同網域中共用Session的方式

A. sso1.aspx 位於http://www.sso1.com/sso1.aspx

Partial Class sso1
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 
        Session("username") = "Spark"
        Session("email") = "spark@sso.com"
        Session("userid") = 2
        Session("sex") = "M"
        Session("DestPage") = "ssoSucc.aspx"

        Response.Write("<form name=t id=t action=http://www.sso2.com/sso2.aspx method=post >")
        For i As Integer = 0 To Session.Contents.Count - 1
            Response.Write("<input type=hidden name=" & Session.Keys(i).ToString)
            Response.Write(" value=" & Session.Contents(Session.Keys(i).ToString) & " >")
        Next
        Response.Write("</FORM>")
        Session.Clear()
        Response.Write("<script>t.submit();</script>")

    End Sub


End Class

B. 透過submit方式傳送session至 http://www.sso2.com/sso2.aspx

Partial Class sso2
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 
        For i As Integer = 0 To Request.Form.Count - 1
            Session(Request.Form.GetKey(i)) = Request.Form(i).ToString()
        Next

        Response.Write("<br>" & Session("username").ToString)
        Response.Write("<br>" & Session("email").ToString)
        Response.Write("<br>" & Session("userid").ToString)
        Response.Write("<br>" & Session("sex").ToString)
        Response.Write("<br>" & Session("DestPage").ToString)

        Response.Write("<form name=t id=t action=sso3.aspx method=post >")
        For i As Integer = 0 To Session.Contents.Count - 1
            Response.Write("<input type=hidden name=" & Session.Keys(i).ToString)
            Response.Write(" value=" & Session.Contents(Session.Keys(i).ToString) & " >")
        Next
        Response.Write("</FORM>")
        Session.Clear()
        Response.Write("<script>t.submit();</script>")

    End Sub


End Class

只要透過一連串的網頁傳接動作, 即可在不同網域的程式共用session

延伸閱讀: Session 共用與跨網域

 -----------------------
Share is power

 

 

-----------------------
Share is Power