扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:builder.com.cn 2007年6月27日
关键字:
服务器端验证
下一个例子将在服务器端执行验证。这个简单的Classic ASP页(列表C)将尝试根据选定的NDS域验证用户提供的证书,然后以简单HTML页的形式给IFrame发送一个响应。在代码中,我们创建了一个NWDir控件实例,然后使用NDS树中的UserName和Domain试图定位用户。
如果无法定位用户,代码将通知用户。如果可以定位用户,则用ValidatePassword函数检查所提供的密码。如果登录有效,我们建立一个简单的HTML页面发送给IFrame,它将通知确认登录的父页面。
列表C
<%
OPTION EXPLICITDIM sCurrentUsername
DIM sCurrentPassword
DIM sCurrentNetworkPath
DIM sCheckLogin' get the data off the form
sCurrentUsername = Request.QueryString("username")
sCurrentPassword = Request.QueryString("password")
sCurrentNetworkPath = Request.QueryString("domain")
‘ create the NDDS object
SET NWDir1=Server.CreateObject(”NWDirLib.NWDirCtrl.1″)
‘ set the value
NWDir1.Fullname = sCurrentNetworkPath
SET entry=NWDir1.FindEntry(sCurrentNetworkPath & “\” & sCurrentUsername)
‘ if we can’t find the user then redirect to the login page
IF entry IS nothing Then
loginFailed
ELSE
‘ attempt a login
sCheckLogin = NWDir1.Entries(sCurrentUserName).ValidatePassword(sCurrentPassword)
‘ if the login is ok
IF sCheckLogin = True THEN
‘ close the HTML header and start the doc
Response.Write(”<HTML>” & Chr(13))
Response.Write(”<HEAD>” & Chr(13))
Response.Write(”</HEAD>” & Chr(13))
Response.Write(”<BODY ONLOAD=’alert(” & Chr(34) & sCurrentUsername & Chr(34) & “)’>” & Chr(13))
Response.Write(”</BODY>” & Chr(13))
Response.Write(”</HTML>” & Chr(13))
‘ otherwise login failed, so bounce back to the login page
ELSE
loginFailed
END IF
END IF
‘ drop the connection to the NDS object
SET NWDir1=Nothing
SUB loginFailed
Response.Write(”<HTML>” & Chr(13))
Response.Write(”<HEAD>” & Chr(13))
Response.Write(”<SCRIPT LANGUAGE=’javascript’ TYPE=’text/javascript’>” & Chr(13))
Response.Write(” function loginFailed()” & Chr(13))
Response.Write(” {” & Chr(13))
Response.Write(” alert(’ Login Failed for user ” & sCurrentUsername & “‘);” & Chr(13))
Response.Write(” }” & Chr(13))
Response.Write(”</SCRIPT>” & Chr(13))
Response.Write(”</HEAD>” & Chr(13))
Response.Write(”<BODY ONLOAD=’loginFailed()’>”)
Response.Write(”</BODY>” & Chr(13))
Response.Write(”</HTML>” & Chr(13))
end sub
%>
最后会弹出一条消息,通知用户他们是否成功登录。虽然这个例子没有多大价值,但你可以方便地对它进行修订,创建一个ASP会话,或为应用程序保存用户证书的cookie。
如果结合上述两种方法,你可以创建一个登录窗口,它只有在用户根据NDS目录没有通过验证的情况下才会出现;否则,他们就得以无缝处理,好像他们已经通过登录窗口登录。这即是一个SSO应用程序的例子。
其它应用
在上面的三个例子中,我们建立了根据Novell NDS目录在客户端和服务器端探测和验证用户的方法。你也可以根据MSDN中的样本代码,编写一个应用于微软活动目录环境下的类似应用。
责任编辑:德东
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者