不是两个Form,也不是用权限字段或session,而是登录检验用户名和密码时在两个表里检验。
首先,必须在Form上加一个radiobutton(单选框),根据radiobutton的值来判断用哪个sql语句
例如:有两个radiobutton,一个值为man(判断在login表中验证口令),另一个为work(判断在T_User表中验证口令),找到UD产生的登录代码中“MM_rsUser.Source = MM_rsUser.Source.......”在前面加上判断语句,
if Request.Form("radiobutton")="man" then
MM_rsUser.Source = MM_rsUser.Source & " FROM login WHERE (login.user='" & MM_valUsername &"' AND login.psw='" & CStr(Request.Form("texPwd"))& "') "
else
MM_rsUser.Source = MM_rsUser.Source & " FROM T_User WHERE (T_User.uID='" & MM_valUsername &"' AND T_User.pwd='" & CStr(Request.Form("texPwd"))& "')"
end if
然后找的最下面的这句“Response.Redirect(MM_redirectLoginSuccess)”这表示成功后跳转的哪个页面,在前面也像上面加上判断
if Request.Form("radiobutton")="man" then
Response.Redirect(MM_redirectLoginSuccess)
else
Response.Redirect("work.asp") //另一个页面
end if
具体的代码如下:
<%@LANGUAGE="VBSCRIPT"%>
<%
' *** Validate request to log in to this site.
MM_LoginAction = Request.ServerVariables("URL")
If Request.QueryString<>"" Then MM_LoginAction = MM_LoginAction + "?" + Request.QueryString
MM_valUsername=CStr(Request.Form("texUID"))
If MM_valUsername <> "" Then
MM_fldUserAuthorization=""
MM_redirectLoginSuccess="ok.asp"
MM_redirectLoginFailed="fail.asp"
MM_flag="ADODB.Recordset"
set MM_rsUser = Server.CreateObject(MM_flag)
MM_rsUser.ActiveConnection = MM_Test_STRING
MM_rsUser.Source = "SELECT *"
If MM_fldUserAuthorization <> "" Then MM_rsUser.Source = MM_rsUser.Source & "," & MM_fldUserAuthorization
if Request.Form("radiobutton")="man" then
MM_rsUser.Source = MM_rsUser.Source & " FROM login WHERE (login.user='" & MM_valUsername &"' AND login.psw='" & CStr(Request.Form("texPwd"))& "') "
else
MM_rsUser.Source = MM_rsUser.Source & " FROM T_User WHERE (T_User.uID='" & MM_valUsername &"' AND T_User.pwd='" & CStr(Request.Form("texPwd"))& "')"
end if
MM_rsUser.CursorType = 0
MM_rsUser.CursorLocation = 2
MM_rsUser.LockType = 3
MM_rsUser.Open
If Not MM_rsUser.EOF Or Not MM_rsUser.BOF Then
' username and password match - this is a valid user
Session("MM_Username") = MM_valUsername
If (MM_fldUserAuthorization <> "") Then
Session("MM_UserAuthorization") = CStr(MM_rsUser.Fields.Item(MM_fldUserAuthorization).value)
Else
Session("MM_UserAuthorization") = ""
End If
if CStr(Request.QueryString("accessdenied")) <> "" And false Then
MM_redirectLoginSuccess = Request.QueryString("accessdenied")
End If
MM_rsUser.Close
if Request.Form("radiobutton")="man" then
Response.Redirect(MM_redirectLoginSuccess)
else
Response.Redirect("work.asp")
end if
End If
MM_rsUser.Close
Response.Redirect(MM_redirectLoginFailed)
End If
%>
Untitled Document并且我试了一下,UD的登录代码和表单可以不在同一个页面,你只要把登录的代码copy到另一个页,并把原来的表单的Action指向这个页就好了,并且如果用"ok"登录也进不去了,只是显示错误页,挺有趣的。