一个动网7.1 SP1判断用户登录的问题

发布时间:2024-06-26 13:15 发布:上海旅游网

问题描述:

网站上有一个页面是当用户已经从论坛上登录后才可以查看的,如果还没登录,该页面则显示[请先登录]的链接。

但我查看了动网登录页面login.asp的代码,试图从中找出COOKIES的值来判断用户是否已经登录,但没能找到相关代码。请高手指点下应该从哪下手,来做登录判断。。

不要告诉我用动网提供的接口整合文件哦。
网站代码是自己写的,并非OBLOG 或 Powereasy 没接口可以整合。
怎么垃圾的回答那么多啊?这问题很难吗,怎么没人回答得了?

还一大堆牛头不搭马嘴的东西。如果确实没人能够回答的,那我只好把问题给关闭了,也不姑息一个垃圾答案出现,误导其他人。

问题解答:

给我个最佳答案吧!

logout.asp文件(也就是退出文件)
里面的代码很简洁,就那么几句!
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.Forum_sn是一个变量,参考Dv_ClsMain.asp里有【
Forum_sn="DvForum"'如果一个虚拟目录或站点开多个论坛,则每个要错开,不能定义同一个名称
CacheName="DvCache"'如果一个虚拟目录或站点开多个论坛,则每个要错开,不能定义同一个名称

这么两句,可以看出Dvbbs.Forum_sn就是="DvForum"
那么可以变成
Response.Cookies("DvForum")("username")=""
最后,记住获取COOKIES是REQUEST!例如
if request.Cookies("DvForum")("username")="" then
那么怎么判断,你应该也就知道得差不多了吧!
代码的东西不是要人家帮你解决,而是要自己努力想办法找思路去解决,一般大型的复杂性系统去研究登陆文件一般没什么用,太复杂了,对代码不熟悉一时半会还能把自己分析乱,一般退出文件才是软肋!因为不是起到很重要的作用,程序员一般不会把其复杂化,那么新手分析起来也相对简单一些,这些都是实践中得来的,没有什么书什么教程会说到这些,只能靠自己不断去重复去做去实践才能自己悟出来!
楼上的方法固然可行,但是必须调用const.asp跟Dv_ClsMain.asp才能实现,对于代码不熟悉的话,反而会给自己带来更多问题,例如变量名冲突等……
如果你觉得用DV的COOKIES太难分析的话,可以加你自己的COOKIES进去啊,LOGIN.ASP文件
写入登陆的过程里
Function Dvbbs_ChkLogin
下面加例如
Response.Cookies("yijingdenglu")="是的,登陆了"
然后就可以

response.write request.Cookies("yijingdenglu")
……已此类推吧!
打了这么多,给我个最佳答案吧!^_^

200分的诱惑就让这么多垃圾回复的出现,,不得不佩服

动网的验证是写在一个文件中的,

由于动网可以后台设置是否需要登陆才查看帖子
所以,后台设置了否,就不需要登陆直接看
如果设置了是,就需要登陆才能开,否则输出指定的输出内容。所以,只有当设置为是,该验证文件才生效

所以,得出的结论是,有两个判断条件

我们找到需要验证的显示页面dispbbs.asp
可以发现,源码中没有验证登陆的代码
接着查看预处理里面的内容
可以发现查找到了inc/dv_clsother.asp
打开,这就是验证文件了

这样应该你已经明白不少了,,慢慢折腾了,祝成功

没想到为200分我也打了这么多字。。还下了个动网论坛回来。。。

动网不是根据COOKIES值来判断用户登陆的
而是调用了INC文件下的const.asp中一个函数
(实际上const.asp是调用了Dv_ClsMain.asp这个文件)

只要在ASP中包含这个文件,就能调用
Dvbbs.UserID 来判断用户登陆状态
Dvbbs.Userid>0为登陆状态

可以对照一下你的系统里是不是有可疑进程!
最基本的系统进程(也就是说,这些进程是系统运行的基本条件,有了这些进程,系统就能正常运行):
smss.exe Session Manager
csrss.exe 子系统服务器进程
winlogon.exe 管理用户登录
services.exe 包含很多系统服务
lsass.exe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序。(系统服务)
产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket)。(系统服务)
svchost.exe 包含很多系统服务
SPOOLSV.EXE 将文件加载到内存中以便迟后打印。(系统服务)
explorer.exe 资源管理器
internat.exe 托盘区的输入法图标
参考资料:绝对的原创!

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")=""

也许 它那个更本没用cookle 就是
IF (登陆)显示 用户名
否 显示 请登陆

热点新闻