壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1025|回复: 1

[Domino B/S开发] 请问高手:在BS下如何注册用户

[复制链接]
发表于 2004/12/22 10:31:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
我在代理中是这样写的,但是却是不能够将注册用户的邮箱保存到MAIL文件中。代理代码如下:Sub Initialize
        Dim session As New NotesSession   ' 定义服务器Session变量,一个用户一个线程
        Dim db As NotesDatabase           ' 定义一个Notes数据库对象
        Dim dbn As notesdatabase
        Dim acl As NotesACL               ' 定义一个Notes数据库的存取控制列表对象
        Dim entry As NotesACLEntry        ' 定义一个Notes数据库的存取控制列表内的条目对象
        Dim view As NotesView             ' 定义一个Notes数据库内的视图对象
        Dim doc As NotesDocument          ' 定义一个Notes数据库内的文档对象
        '邮件信息
        Dim MailDb As NotesDatabase
        Dim CopyMailDB As Notesdatabase
        Dim template As  NotesDatabase
       
        Dim MailACL As NotesACL         
        Dim MailEntry As NotesACLEntry  
       
        Dim fileName As String
       
        Dim cgi As NotesDocument
        Set cgi = session.DocumentContext
        Msgbox"OK?"       
        ' 如果帐号为空,则提示
        If (cgi.LastName(0)="") Then
                Msgbox cgi.referer(0)
                Print "<font size=2>用户帐号录入了空值,不能注册</font>"
                Print "<hr size=1 color=red>"
                Print "点击这里<a href=&#39;javascript:history.back(0);&#39;><font size=2>返回</font></a>"
                Exit Sub
        Else
                Dim letterCode As Long        
                Dim ln As String
                Dim l As Long
               
                ln =cgi.lastName(0)
                l =Len(cgi.lastName(0))
        &#39;For i = 1 To l                        
                &#39;letterCode =Asc(Lcase(Mid(ln,i,1)))                        
                        &#39;If letterCode<Asc("a") Or (letterCode>Asc("z"))  Then
                        &#39;        If letterCode<Asc("0") Or letterCode>Asc("9") Then
                                        &#39;Print "<font size = 2 >用户帐号包含非法字符"
                                &#39;        Print "<hr size=1 color=red>"
                                &#39;        Print "点击这里<a href=&#39;javascript:history.back(0);&#39;><font size=2>返回</font></a>"
                                &#39;        Exit Sub  
                                &#39;End If                                
                        &#39;End If                        
                &#39;Next
        End If
       
        &#39; 如果用户密码为空,则提示
        If (cgi.HTTPPassword(0)="") Then
                Print "<font size=2>您的密码没有得到确认,不能注册</font>"
                Print "<hr size=1 color=red>"
                Print "点击这里<a href=&#39;javascript:history.back();&#39;><font size=2>返回</font></a>"
                Exit Sub
        End If
        &#39; 如果确认密码为空,则提示
        If (cgi.Password(0)="") Then
                Print "<font size=2>确认密码录入了空值,不能注册</font>"
                Print "<hr size=1 color=red>"
                Print "点击这里<a href=&#39;javascript:history.back();&#39;><font size=2>返回</font></a>"
                Exit Sub
        End If
        If (cgi.HTTPPassword(0)=cgi.Password(0)) Then
               
        Else
                Print "<font size=2>确认密码和密码不一致,不能注册</font>"
                Print "<hr size=1 color=red>"
                Print "点击这里<a href=&#39;javascript:history.back();&#39;><font size=2>返回</font></a>"
                Exit Sub
        End If
       
       
        &#39; 如果真实姓名为空,则提示
        If (cgi.PeopleName(0)="") Then
                Print "<font size=2>真实姓名录入了空值,不能注册</font>"
                Print "<hr size=1 color=red>"
                Print "点击这里<a href=&#39;javascript:history.back();&#39;><font size=2>返回</font></a>"
                Exit Sub
        End If
       
       
        Set db = session.GetDatabase("", "names.nsf")             &#39; 把db指向Domino目录
        Set view = db.GetView("People")                           &#39; 取Domino目录的People视图
        Set doc = view.GetDocumentByKey(cgi.LastName(0), True)    &#39; 得到帐号名为LastName域值的用户文档
        If Not(doc Is Nothing) Then                               &#39; 如果已经有相同的帐号存在,那么提示
                Print "<font size=2>用户帐号为: "+cgi.LastName(0)+" 的用户已经存在了,不能注册</font>"
                Print "<hr size=1 color=red>"
                Print "点击这里<a href=&#39;javascript:history.back();&#39;><font size=2>返回</font></a>"
                Exit Sub
        End If
        tmp=Evaluate({@userroles="[系统管理员]"})
        If tmp(0)=0  Then
                Msgbox "你不是管理员,禁止运行此程序!",64,"博安OA"               
                continue=False
        End If
        &#39;If (cgi.user(0)="webadmini")  Or (cgi.user(0)="KMHWAdmin")  Or (cgi.user(0)="developer")  Then
        Set doc = db.CreateDocument()           &#39; 在Domino目录内创建一个新文档doc
        doc.Form = "Person"                     &#39; 填写doc的域 Form (一个隐藏域)
        doc.Type = "Person"                     &#39; 填写doc的域 Type
        doc.LastName = cgi.LastName(0)          &#39; 填写doc的域 FullName
        doc.FullName = cgi.LastName(0)          &#39; 填写doc的域 LastName
        doc.HTTPPassword = cgi.HTTPPassword(0)  &#39; 填写doc的域 HTTPPassord
        doc.Password = cgi.Password(0)          &#39; 填写doc的域 Passord
        doc.PeopleName = cgi.PeopleName(0)      &#39; 填写doc的域 PeopleN ame
        doc.MailSystem = "6"
        doc.MailServer = session.userName
        doc.MailFile = Trim("mail/"+cgi.lastName(0))
        doc.MailDomain = cgi.doMain(0)
       
        Call doc.Save(True, False)              &#39; 保存 doc
       
        Set acl = db.ACL                                                   &#39; 提取Domino目录的存取控制列表
        Set entry = acl.CreateACLEntry(cgi.LastName(0), ACLLEVEL_MANAGER)  &#39; 添加注册用户到存取控制列表里面,并设置其为管理员]
        entry.CanDeleteDocuments = False                                   &#39;不能删除文档
        Call acl.Save()                                                    &#39; 保存修改结果到Domino目录
        Set db = session.CurrentDatabase                                   &#39; 将db指向当前数据库
        Set acl = db.ACL                                                   &#39; 提取当前数据库的存取控制列表
        Set entry = acl.CreateACLEntry(cgi.LastName(0), ACLLEVEL_MANAGER)  &#39; 添加条目到当前数据库的存取控制列表之中
        entry.CanDeleteDocuments = False
        Call acl.Save()         &#39; 保存结果
                &#39;创建邮件数据库               
        Set mailDb = New notesDatabase("","mail.nsf" )&#39;邮件系统模板
        fileName = Trim("mail\"+cgi.lastName(0)+".nsf" )&#39;目标邮件数据库文件名
       
        Set CopyMailDB =  MailDB.CreateCopy("",fileName)&#39;邮件数据库(个人)
        CopyMailDB.Title =cgi.PeopleName(0)+"个人邮箱"&#39;邮件数据库标题
        Set MailACL = CopyMailDB.ACL
        Set MailEntry =MailACL.CreateACLEntry(cgi.lastName(0),ACLLEVEL_MANAGER)
        Call  MailACL.save
        Set MailEntry =MailACL.CreateACLEntry(cgi.user(0),ACLLEVEL_MANAGER)
        Call  MailACL.save   
        Print "<font size=2>用户帐号"+cgi.LastName(0)+" 已经注册成功了</font>"
        Print "且已经创建"+cgi.peopleName(0)+"个人邮箱("+copyMailDB.FileName+" "
        Print "<hr size=1 color=red>"
        Print "点击这里<a href=&#39;javascript:history.back();&#39;><font size=2>返回</font></a>"
       
&#39;        Else
&#39;                Print "<font size=2>您不是系统管理员,不能注册</font>"
&#39;                Print "<hr size=1 color=red>"
&#39;                Print "点击这里<a href=&#39;javascript:history.back();&#39;><font size=2>返回</font></a>"
&#39;        End If
End Sub
发表于 2004/12/22 15:52:08 | 显示全部楼层
这行有点别扭,改了:doc.MailFile = Trim("mail/"+cgi.lastName(0));
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 07:47 , Processed in 0.011909 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表