web用户口令修改

时间:2022-09-19 16:49:48
如何实现?请说详细点!我将不胜感激,100分赠送。前提是我做成功!呵呵!
要用公式代理吗?

10 个解决方案

#1


你提的问题,不详细
要怎样的人改口令,从那里修改?
系统管理员可从,administor中修改。
先进入公用通讯录中,找到http选项,编辑相应人的个人文档的IE口令即可。

#2


同意楼上
在administor中修改即可
web上,找到相应的变量

#3


我刚做过一个系统,里面也有用户修改口令的功能(用户修改自己的密码),我是这样做的:
    编写代理,其用途为:1,获取names.nsf数据库.2,获取"用户"视图(名字好象是"person",记不清了,反正差不多).3,以WEB用户的登录名为关键字在视图中查找文档.4,找到后比对用户输入的老密码是否与文档中password域的值相同(用户输入的老密码要用@password加密后才能进行比对),如果相同表示用户匹配,否则表示是同名但不是目标查找用户.5,用户确定后用加密后的新密码字符窜对文档的@password域负值.6,保存文档.  
                                        完成!

#4


在自己的数据库中新建一个表单,在表单内建四个域: 
userName:文本 
oldPassword:口令 
newPassword:口令 
newPasswordAgain:口令 
在表单的webQuerryOpen的<输入代理名>输入以下代理的 
代理名“webChangePassword” 
该代理的代码如下: 
Sub Initialize 
Dim ss As New NotesSession 
Dim db As NotesDatabase 
Set db = ss.CurrentDatabase 
Dim doc As NotesDocument 
Set doc = ss.DocumentConText 
Dim mydb As NotesDatabase 
Dim myView As NotesView 
Dim mydoc As NotesDocument 
Set mydb = New NotesDatabase(db.Server,"names.nsf") 
Set myView = mydb.GetView("People") 
'get the user's information from the form 
'filled by the user that change his own password 
userName = doc.userName(0) 
oldpass = doc.oldPassword(0) 
newpass = doc.newPassword(0) 
If newpass <> doc.newPasswordAgain(0) Then 
Print "<a href=javascript:history.go(-1) target=_self>your two new password is not same!</a>" 
Exit Sub 
End If 
Set mydoc = myView.GetDocumentByKey(userName) 
If mydoc Is Nothing Then 
Print "<a href=javascript:history.go(-1) target=_self>the user is not exit!</a>" 
Exit Sub 
Else 
macro$ = "@password('"+oldpass+"')" 
result = Evaluate(macro$) 
If result(0) <> mydoc.HTTPPassword(0) Then 
Print "<a href=javascript:history.go(-1) target=_self>your old password error!</a>" 
Exit Sub 
End If 
macro$ = "@password('"+newpass+"')" 
result = Evaluate(macro$) 
mydoc.HTTPPassword = result(0) 
Call mydoc.Save(True,True) 
Print "<META HTTP-EQUIV=""Expires"" CONTENT=""0"">" 
Print "<title>system</title>" 
Print "</head>" 
Print "<body>" 
Print "<br>" 
Print "<br>" 
Print "<form>" 
Print "<p align=""center""><font size=""2"">the change of password is ended,please logon again!</p>" 
Print "<p align=""center""><input type=""button"" value=""Longon Again"" name=""OK"" onclick=""okclick()""> </p>" 
Print "</form>" 
Print "</body>" 
Print "<SCRIPT LANGUAGE = JavaScript>" 
Print "function okclick()" 
Print "{" 
Print "window.close()" 
Print "}" 
Print "</SCRIPT>" 
Print "</html>" 
End If 
End Sub 



#5


Set mydoc = myView.GetDocumentByKey(userName) 
如果用户在username里输入简称如:lixf
而在视图里有两个用户一个是ff lixf 和cc lixf 那就会出错。如何解决?

#6


用户简称也就是WEB用户名应该是唯一的

#7


留下你的邮箱,我发送一个给你。保证好使。

#8


我觉得应该使用$users视图吧!??
还有顺便问问
  macro$ = "@password('"+oldpass+"')" 
对吗?我怎么总执行的不对?明明我输的密码正确,总是验证不成功!!
我的信箱ivwlc@163.com
谢谢davidnim()

#9


我已经发送请查收。

#10


那就去拿现成的吧,呵呵!
有空再来研究,这段代码也不是我现在用的,不过应该容易搞定的!

#1


你提的问题,不详细
要怎样的人改口令,从那里修改?
系统管理员可从,administor中修改。
先进入公用通讯录中,找到http选项,编辑相应人的个人文档的IE口令即可。

#2


同意楼上
在administor中修改即可
web上,找到相应的变量

#3


我刚做过一个系统,里面也有用户修改口令的功能(用户修改自己的密码),我是这样做的:
    编写代理,其用途为:1,获取names.nsf数据库.2,获取"用户"视图(名字好象是"person",记不清了,反正差不多).3,以WEB用户的登录名为关键字在视图中查找文档.4,找到后比对用户输入的老密码是否与文档中password域的值相同(用户输入的老密码要用@password加密后才能进行比对),如果相同表示用户匹配,否则表示是同名但不是目标查找用户.5,用户确定后用加密后的新密码字符窜对文档的@password域负值.6,保存文档.  
                                        完成!

#4


在自己的数据库中新建一个表单,在表单内建四个域: 
userName:文本 
oldPassword:口令 
newPassword:口令 
newPasswordAgain:口令 
在表单的webQuerryOpen的<输入代理名>输入以下代理的 
代理名“webChangePassword” 
该代理的代码如下: 
Sub Initialize 
Dim ss As New NotesSession 
Dim db As NotesDatabase 
Set db = ss.CurrentDatabase 
Dim doc As NotesDocument 
Set doc = ss.DocumentConText 
Dim mydb As NotesDatabase 
Dim myView As NotesView 
Dim mydoc As NotesDocument 
Set mydb = New NotesDatabase(db.Server,"names.nsf") 
Set myView = mydb.GetView("People") 
'get the user's information from the form 
'filled by the user that change his own password 
userName = doc.userName(0) 
oldpass = doc.oldPassword(0) 
newpass = doc.newPassword(0) 
If newpass <> doc.newPasswordAgain(0) Then 
Print "<a href=javascript:history.go(-1) target=_self>your two new password is not same!</a>" 
Exit Sub 
End If 
Set mydoc = myView.GetDocumentByKey(userName) 
If mydoc Is Nothing Then 
Print "<a href=javascript:history.go(-1) target=_self>the user is not exit!</a>" 
Exit Sub 
Else 
macro$ = "@password('"+oldpass+"')" 
result = Evaluate(macro$) 
If result(0) <> mydoc.HTTPPassword(0) Then 
Print "<a href=javascript:history.go(-1) target=_self>your old password error!</a>" 
Exit Sub 
End If 
macro$ = "@password('"+newpass+"')" 
result = Evaluate(macro$) 
mydoc.HTTPPassword = result(0) 
Call mydoc.Save(True,True) 
Print "<META HTTP-EQUIV=""Expires"" CONTENT=""0"">" 
Print "<title>system</title>" 
Print "</head>" 
Print "<body>" 
Print "<br>" 
Print "<br>" 
Print "<form>" 
Print "<p align=""center""><font size=""2"">the change of password is ended,please logon again!</p>" 
Print "<p align=""center""><input type=""button"" value=""Longon Again"" name=""OK"" onclick=""okclick()""> </p>" 
Print "</form>" 
Print "</body>" 
Print "<SCRIPT LANGUAGE = JavaScript>" 
Print "function okclick()" 
Print "{" 
Print "window.close()" 
Print "}" 
Print "</SCRIPT>" 
Print "</html>" 
End If 
End Sub 



#5


Set mydoc = myView.GetDocumentByKey(userName) 
如果用户在username里输入简称如:lixf
而在视图里有两个用户一个是ff lixf 和cc lixf 那就会出错。如何解决?

#6


用户简称也就是WEB用户名应该是唯一的

#7


留下你的邮箱,我发送一个给你。保证好使。

#8


我觉得应该使用$users视图吧!??
还有顺便问问
  macro$ = "@password('"+oldpass+"')" 
对吗?我怎么总执行的不对?明明我输的密码正确,总是验证不成功!!
我的信箱ivwlc@163.com
谢谢davidnim()

#9


我已经发送请查收。

#10


那就去拿现成的吧,呵呵!
有空再来研究,这段代码也不是我现在用的,不过应该容易搞定的!