有偿开发科讯程序插件。登录的地方不尽完美想改进

xiaobaihuo 2010-07-19 11:06:11
科讯插件开发需求


主要功能是实现用网易或者是新浪邮箱也可以登录科讯,不必注册直接登录。每个科讯网站都注册太麻烦了。不如交给程序来处理。访客优先就是上帝优先。



一.程序要求速度优先,不要求美工。能不用数据库尽可能不用数据库实现。
二.开发分为两部分,1.科讯程序端注册登录系统插件。2.我方程序数据处理端。

软件思路:
1.
科讯程序端注册登录系统插件:
[size=10.5pt]传递数据[size=10.5pt]:用户登录后所填写的用户名和密码和单选条件传递给[size=10.5pt]>[size=10.5pt]我方另一个网站上面去在这儿称为“我方程序




[size=10.5pt]详细文档。请联系我:QQ 19372150
...全文
146 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzx99 2010-07-21
Cookie AnyWhere
学习学习
回复
mocom 2010-07-20
提供个思路给你

一台服务器,别名:A,作为权限验证,同样该服务器兼管用户登录和注销

某服务器,别名:B
访问用户,别名:C

其他服务器,别名:X

登录流程:
C 访问 B
1、B的登录表单
<script language="javascript" src="http://{A}/hash.asp"></script>
<script language="javascript">
function setCookie(name, value) {
//设置本站的Cookie
//由http://{A}/hash.asp中返回的脚本中的setCookie就会调用该函数设置{B}的Cookie
}
</script>
<form action="login.asp" method="post">
<input type="button" value="登录" onclick="login(this)"/>
</form>

A的hash.asp
<%
Dim hasCode
hashCode = "一个定长的由数字和字母组成的字符串"
Session("hash") = hashCode

Response.ContentType = "text/javascript"
Response.Write "setCookie(""hash"", """ & hashCode & """);"
%>

2、登录页面
B的登录页面:
<%
Dim hashCode
hashCode = Request.Cookies("hash")
If hashCode = "" Then
'抛出错误,未从http://{A}/hash.asp中获取到hash code
Response.End
End If
'验证登录...
If [登录成功] Then
'一系列与用户相关的参数附带到A的script中,例如用户名/密码/登录方式等
%>
<script language="javascript" src="http://{A}/result.asp?hash=<%=hashCode%>&login=yes&userid=mocom@163.com&passwd=123456&type=163"></script>
<%Else%>
<script language="javascript" src="http://{A}/result.asp?hash=<%=hashCode%>&login=no"></script>
<%
End If
%>

A的result.asp页面
<%
Dim hashCode
hashCode = Request.QueryString("hash")
If hashCode <> Session("hash") Then
'不处理
ElseIf Request.QueryString("login") <> "yes" Then
'不处理
'ElseIf ... Then '一系列与用户参数有关的判断
Else
Session("userid") = Request.QueryString("userid")
Session("passwd") = Request.QueryString("passwd")
Session("type") = Request.QueryString("type")
End If

Response.Write "setCookie(""hash"", """");" 'B页面获取该字符串,将Cookie::hash删除

'移除hash
Session.Contents.remove "hash"
%>

3,Cookie AnyWhere的实现
X的任意页面:
<script language="javascript" src="http://{A}/async.asp"></script>

A的async.asp
<%
If Session("userid") = "" Then
'未在其他任何服务器上登录过,不做处理
Else
Response.Write "setCookie(""userid"", """ & Session("passwd") & """);"
Response.Write "setCookie(""passwd"", """ & Session("passwd") & """);"
Response.Write "setCookie(""type"", """ & Session("type") & """);"
End If
%>

X的任意页面:
<%
If Session("userid") = "" Then'如果用户未在本服务器登录或未通过验证
If Request.Cookies("userid") = "" Then
'未从http://{A}/async.asp中获取到Cookie,不处理
Else
'检测Request.Cookies里,userid/passwd/type的有效性
'为了安全,最好是将login.asp中的检测重复一遍
If [检测成功] Then
Session("userid") = [userid]
Session("passwd") = [passwd]
Session("type") = [type]
'用户在X中同步成功,可以任意访问了
Else
'估计是非法入侵或者用户账号变动,可以设置到Session黑名单或者在其多次入侵后将IP加入数据库黑名单
'输出:<script language="javascript" src="http://{A}/logout.asp"></script>
'A的logout.asp里,清除userid/passwd/type这些Session
End If
End If
End If
%>

这就是Cookie AnyWhere的基本流程,要实现的话,需要些安全和跨域数据逻辑判断
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告