欢迎来到天天文库
浏览记录
ID:37911111
大小:120.00 KB
页数:5页
时间:2019-06-02
《Domino单账号登陆问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单账号登陆问题在web端单账号登陆的问题,即通过浏览器打开系统时,一个账号只能在一个IP下登陆,设计的原理为:1、当用户登陆时进行判断(onload事件),当前用户是不是该账号最后登录的用户(从登陆日志中查找根据IP),通过webqueryopen执行的代理进行处理,如果不是最后登录的则给域fldLastlogin赋值为“1”,在onload的js中进行处理,删除当前用户的cookie打开登陆界面。如果是最后登录的账户,则进行正常的登录,记录最新的登录时间。2、如果是已经登陆的页面,则在用户进行操作时进行判断(页面的onMousedown
2、事件),进行判断当前用户是否为最后登录的账号。3、登陆日志的记录,对于在同一天同一账户同一IP只记录一条登陆记录,只是登陆时间是最后一次的登录时间。主要处理涉及以下两个库:1、系统管理库(ldconfig.ncf)1)表单(homepage)修改A、增加两个域B、Onload事件的修改C、增加表单的onMousedown事件2)代理A、HomepageOpen(修改)主要增加一个函数用于判断(CheckLoginStat)代码如下:SubCheckLoginStat()OnErrorGotoErrHandleDimsessionAsNew
3、notessessionDimdbAsNotesDatabaseDimLoginDBAsNotesDatabaseDimdocAsnotesdocumentDimLoginDocAsNotesDocumentSetdb=session.CurrentDatabaseSetdoc=session.documentcontextDimUserNameAsStringDimDirectoryAsStringDirectory=doc.CurDbDirectory(0)UserName=doc.UserName(0)'Directory=GetP
4、araValue(doc.Query_String_Decoded(0),"Directory","")'UserName=GetParaValue(doc.Query_String_Decoded(0),"UserName","")SetLoginDB=session.GetDatabase(db.Server,Directory+"LoginLog.nsf")DimviewAsNotesViewSetview=LoginDB.GetView("LoginLogtime")view.RefreshDimstrsearch(1To2)A
5、sStringstrsearch(1)=UserNamestrsearch(2)=Str(Today())'SetLoginDoc=Logincon.GetFirstDocumentSetLoginDoc=view.GetDocumentByKey(strsearch,True)'IfLoginDocIsNothingThenIfLoginDocIsNothingThenElseIfdoc.Remote_Addr(0)<>LoginDoc.LoginIP(0)Then'Msgboxdoc.Remote_Addr(0)+"Add"'Msgb
6、oxLoginDoc.LoginIP(0)+"Ip"LoginDoc.LoginIP=doc.Remote_Addr(0)doc.fldLastLogin="1"EndIfEndIfExitSubErrHandle:ErrLog"CheckLoginStat"ExitSubEndSubA、Loginlog(修改)主要修改写登陆日志的部分,不同IP登陆页要记录B、Loginlogchk(增加)主要是用于onMousedown事件是进行判断用,代码如下:SubInitializeOnErrorGotoalertDimsessionAsNewn
7、otessessionDimdbAsNotesDatabaseDimLoginDBAsNotesDatabaseDimdocAsnotesdocumentSetdb=session.CurrentDatabaseSetdoc=session.documentcontextDimUserNameAsStringDimDirectoryAsStringDirectory=GetParaValue(doc.Query_String_Decoded(0),"Directory","")UserName=GetParaValue(doc.Query
8、_String_Decoded(0),"UserName","")SetLoginDB=session.GetDatabase(db.Server,Directory+"LoginLog.n
此文档下载收益归作者所有