asp.net與動網論壇的整合

來源:互聯網
上載者:User
思路:     在網站登陸的時候,寫Cookies,訪問論壇的時候讀這個Cookies,如果存在的話,就查詢動網的使用者表,然後寫動網自己的Cookies和Session具體方法:1.是要同步處理的使用者表,這個就不多說了.2.在asp.net做的網站中登入成功後寫一個cookie.Response.Cookies["bhj"].Path = "/";//實現全站共用cookie,如果不在同一個域中就設成同一個域Response.Cookies["bhj"]["dUserName"] = "你的使用者名稱";Response.Cookies["bhj"]["dPassword"] = "你的密碼";//要加密哦.............................等等資訊,在這裡不多寫了.3.實現cookie的全站通用必須修改三個檔案:①開啟inc/Dv_ClsMain.asp
尋找   Response.Cookies(Forum_sn).path=cookiepath
應該共有1個
替換為:
Response.Cookies(Forum_sn).path="/" ②   開啟login.asp
尋找   Response.Cookies(Dvbbs.Forum_sn).path=Dvbbs.cookiepath
應該共有3個,其中一個是:Response.Cookies(Dvbbs.Forum_sn).path   =   Dvbbs.cookiepath(等號兩旁有空格)
替換為:
Response.Cookies(Dvbbs.Forum_sn).path="/" ③   開啟logout.asp
尋找   Response.Cookies(Dvbbs.Forum_sn).path=Dvbbs.cookiepath   第26行
應該只有一個
替換為:
Response.Cookies(Dvbbs.Forum_sn).path="/" 4.建立一個WriteCookies.asp的檔案放在動網根目錄。將下面這段代碼複製進去<%session("flag")=empty
Response.Cookies("StatUserID")=Request.Cookies("StatUserID")
Dim ChinaUserName,ChinaPassword,TruePassWordChina
ChinaUserName = Trim(Request.Cookies("bhj")("dUserName"))
ChinaPassword = Trim(Request.Cookies("bhj")("dPassword"))
If ChinaUserName<> "" and ChinaPassword <> "" then
  If ChkChina228Login(ChinaUserName,ChinaPassword,1,ChinaCreatepass(),1) then
    
  End If
End if

Function ChkChina228Login(ChinaUserName,ChinaPassword,usercookies,TruePassWordChina,userhidden)
  Dim rsUser,article,userclass,titlepic
  Dim lastip,UserLastLogin
  Dim GroupID,ClassSql,FoundGrade
  Dim regname,iMyUserInfo
  Dim sql,sqlstr,OLDuserhidden
  Sql="Select UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,UserFace,UserWidth,UserHeight,JoinDate,LastLogin,lastlogin as cometime , LastLogin as activetime,UserLogins,Lockuser,Userclass,UserGroupID,UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,UserHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid as boardid"
  Sql=Sql & " From [Dv_User] Where UserName='"&ChinaUserName&"'"
    set rsUser=Dvbbs.Execute(sql)
    If rsUser.eof and rsUser.bof Then
      ChkChina228Login=False
      Exit Function
    Else
      If rsUser("Lockuser") =1 or rsUser("UserGroupID") =5 Then
        ChkChina228Login=False
        Exit Function
      Else
        If Trim(ChinaPassword)=Trim(rsUser("UserPassword")) Then
          ChkChina228Login=True
          Dvbbs.UserID=RsUser("UserID")
          RegName = RsUser("UserName")
          Article= RsUser("UserPost")
          UserLastLogin = RsUser("cometime")
          UserClass = RsUser("Userclass")    
          GroupID = RsUser("userGroupID")
          OLDuserhidden=RsUser("UserHidden")
          TitlePic = RsUser("UserTitle")
          If Article < 0 Then Article=0
            Set Dvbbs.UserSession=Dvbbs.RecordsetToxml(rsUser,"userinfo","xml")
            Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@cometime").text=Now()
            Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@activetime").text=DateAdd("s",-3600,Now())
            Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@boardid").text=0
            Dvbbs.UserSession.documentElement.selectSingleNode("userinfo").attributes.setNamedItem(Dvbbs.UserSession.createNode(2,"isuserpermissionall","")).text=Dvbbs.FoundUserPermission_All()
            If OLDuserhidden <> CLng(userhidden) Then
              Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@userhidden").text=userhidden
              Dvbbs.Execute("update Dv_user set userhidden="&userhidden&" where UserId=" & Dvbbs.UserID)
            End If
            Dim BS
            Set Bs=Dvbbs.GetBrowser()
            Dvbbs.UserSession.documentElement.appendChild(Bs.documentElement)
            If EnabledSession Then   Session(Dvbbs.CacheName & "UserID")=Dvbbs.UserSession.xml

        Else
          ChkChina228Login=False
          Exit Function
        End If
      End If
    End If
  If ChkChina228Login Then

  Set rsUser=Dvbbs.Execute("Select MinArticle,IsSetting,ParentGID,UserTitle,GroupPic From Dv_UserGroups Where UserGroupID="&GroupID)
  If Not (rsUser.Eof And rsUser.Bof) Then
    If rsUser(2)=1 or rsUser(2)=2 or rsUser(2)=4 or rsUser(2)=5 Then
      '使用者等級不按照文章升級,使用者為系統或特殊或多屬性群組
      UserClass=rsUser(3)
      TitlePic=rsUser(4)
      FoundGrade=True
    End If
  End If
  If Not FoundGrade Then
    '如果不屬於系統或特殊或多屬性群組,則將該使用者屬於註冊使用者組且按照其文章數自動更新其使用者組(等級)
    Set rsUser=Dvbbs.Execute("Select Top 1 usertitle,GroupPic,UserGroupID From Dv_UserGroups Where ParentGID=3 And Minarticle<="&Article&" order By MinArticle Desc,UserGroupID")
    If Not (rsUser.Eof And rsUser.Bof) Then
      UserClass=rsUser(0)
      TitlePic=rsUser(1)
      GroupID=rsUser(2)
      FoundGrade=True
    End If
  End If
  Set rsUser=nothing
  If Not FoundGrade Then
    ChkChina228Login=False
    Exit Function
  end if
    sql="update [Dv_User] set LastLogin="&SqlNowString&",UserLogins=UserLogins+1,UserLastIP='"&lastip&"',userclass='"&userclass&"',titlepic='"&titlepic&"',UserGroupID="&GroupID&",TruePassWord='"&TruePassWordChina&"' where userid="&dvbbs.UserID
    Dvbbs.Execute(sql)
  Dim StatUserID,UserSessionID
    StatUserID = Dvbbs.checkStr(Trim(Request.Cookies(Dvbbs.Forum_sn)("StatUserID")))
    If IsNumeric(StatUserID) = 0 or StatUserID = "" Then
      StatUserID = Replace(Dvbbs.UserTrueIP,".","")
      UserSessionID = Replace(Startime,".","")
      If IsNumeric(StatUserID) = 0 or StatUserID = "" Then StatUserID = 0
      StatUserID = Ccur(StatUserID) + Ccur(UserSessionID)
    End If
  StatUserID = Ccur(StatUserID)
  Dvbbs.Execute("delete from dv_online where id="&StatUserID&"")
  If trim(ChinaUserName)<>trim(Dvbbs.membername) Then
    Response.Cookies(Dvbbs.Forum_sn)("username")=""
    Response.Cookies(Dvbbs.Forum_sn)("password")=""
    Response.Cookies(Dvbbs.Forum_sn)("userclass")=""
    Response.Cookies(Dvbbs.Forum_sn)("userid")=""
    Response.Cookies(Dvbbs.Forum_sn)("userhidden")=""
    Response.Cookies(Dvbbs.Forum_sn)("usercookies")=""
    Dvbbs.Execute("delete from dv_online where username='"&Dvbbs.membername&"'")
  End If
  If isnull(usercookies) or usercookies="" Then usercookies="0"
  select case usercookies
  case "0"
    Response.Cookies(Dvbbs.Forum_sn)("usercookies") = usercookies
  case 1
    Response.Cookies(Dvbbs.Forum_sn).Expires=Date+1
    Response.Cookies(Dvbbs.Forum_sn)("usercookies") = usercookies
  case 2
    Response.Cookies(Dvbbs.Forum_sn).Expires=Date+31
    Response.Cookies(Dvbbs.Forum_sn)("usercookies") = usercookies
  case 3
    Response.Cookies(Dvbbs.Forum_sn).Expires=Date+365
    Response.Cookies(Dvbbs.Forum_sn)("usercookies") = usercookies
  end select
  Response.Cookies(Dvbbs.Forum_sn).Domain = "china228.com"
  Response.Cookies(Dvbbs.Forum_sn)("StatUserID") = StatUserID
  Response.Cookies(Dvbbs.Forum_sn)("username") = Regname
  Response.Cookies(Dvbbs.Forum_sn)("password") = TruePassWordChina
  Response.Cookies(Dvbbs.Forum_sn)("userclass") = userclass
  Response.Cookies(Dvbbs.Forum_sn)("userid") = Dvbbs.UserID
  Response.Cookies(Dvbbs.Forum_sn)("userhidden") = 2
  
  rem 清除圖片上傳數的限制
  Response.Cookies("upNum")=0
  Dvbbs.Membername=Dvbbs.Checkstr(regname)
  Dvbbs.UserSession.documentElement.selectSingleNode("userinfo/@truepassword").text= TruePassWordChina
  Dvbbs.Memberclass=Dvbbs.Checkstr(userclass)
  Dvbbs.UserGroupID=GroupID
  End If
End Function

Function ChinaCreatepass()'系統分配隨機密碼
    Dim Ran,i,LengthNum
    LengthNum=16
    ChinaCreatepass=""
    For i=1 To LengthNum
      Randomize
      Ran = CInt(Rnd * 2)
      Randomize
      If Ran = 0 Then
        Ran = CInt(Rnd * 25) + 97
        ChinaCreatepass = ChinaCreatepass& UCase(Chr(Ran))
      ElseIf Ran = 1 Then
        Ran = CInt(Rnd * 9)
        ChinaCreatepass = ChinaCreatepass & Ran
      ElseIf Ran = 2 Then
        Ran = CInt(Rnd * 25) + 97
        ChinaCreatepass =ChinaCreatepass& Chr(Ran)
      End If
    Next
End Function%>5.開啟inc/const.asp,在第二行加<!--#include file="../WriteCookies.asp"-->
Const.asp的完整代碼為

<!--#Include File="Dv_ClsMain.asp"-->
<!--#include file="../WriteCookies.asp"-->
<%
Set MyBoardOnline=new Cls_UserOnlne
Dvbbs.GetForum_Setting
Dvbbs.CheckUserLogin
%>6.把動網論壇的logout.asp(登出功能)檔案開啟打到如下內容Response.Cookies(Dvbbs.Forum_sn).path="/"Response.Cookies(Dvbbs.Forum_sn)("username")=""Response.Cookies(Dvbbs.Forum_sn)("password")=""Response.Cookies(Dvbbs.Forum_sn)("userclass")=""Response.Cookies(Dvbbs.Forum_sn)("userid")=""Response.Cookies(Dvbbs.Forum_sn)("userhidden")=""Response.Cookies(Dvbbs.Forum_sn)("usercookies")="" 很明顯上面的代碼是用來置空cookie的,在下面添上幾行,Response.Cookies("bhj")("dUserName")=""Response.Cookies("bhj")("dPassword")=""......................................這幾行的意思是清調你寫入的cookie資訊.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.