【发布时间】:2011-03-18 16:10:49
【问题描述】:
我有一个需要更安全的页面。基本上,该页面显示了一些电话号码并用 html 编写。服务器只支持asp。并且只有 2-3 人会访问此页面。我想要最简单的用户名密码脚本,只针对这个页面。
这可能吗?我看到的大多数教程都是针对两页设置的。
不是数据库驱动的,密码/用户名将在代码中
【问题讨论】:
标签: html authentication asp-classic
我有一个需要更安全的页面。基本上,该页面显示了一些电话号码并用 html 编写。服务器只支持asp。并且只有 2-3 人会访问此页面。我想要最简单的用户名密码脚本,只针对这个页面。
这可能吗?我看到的大多数教程都是针对两页设置的。
不是数据库驱动的,密码/用户名将在代码中
【问题讨论】:
标签: html authentication asp-classic
如果您在 IIS 上的 Windows 域环境中执行此操作,您可以根据登录用户限制页面。不需要任何表格。您必须确保服务器未设置为允许匿名登录。
domainUsername = Request.ServerVariables("AUTH_USER")
if domainUsername = "domain\usera" or domainUsername = "domain\userb" then
'show numbers
else
'show error
end if
【讨论】:
我已经有一段时间没有做任何经典的 ASP 了,所以语法可能有点不对,但基本上它看起来像:
<%
Function Login(username,password)
Login = False
If Trim(LCase(username)) = "somebodywhocanseethepage" And Trim(LCase(password)) = "opensaysame" Then
Login = True
End If
End Function
Sub WriteLoginForm()
%>
<form action="<%= Request.ServerVariables("SCRIPT_NAME") %>" method="post">
<input type="hidden" name="_TRIGGER" id="_TRIGGER" value="LOGIN" />
Username: <input type="text" name="username" id="username" /><br />
Password: <input type="password" name="password" id="password" /><br />
<input type="submit" value="Login" />
</form>
<%
End Sub
Sub WritePageContent()
%>
<h1>Phone Numbers</h1>
<ul>
<li>867-5309</li>
<li>911</li>
<li>2 8 1, 3 3 oh, eight zero zero fo'</li>
</ul>
<%
End Sub
If Request.Form("_TRIGGER") = "LOGIN"
If Login(Request.Form("username"),Request.Form("password"))
WritePageContent
Else
Response.Write "Login failed.<br />"
WriteLoginForm
End If
Else
WriteLoginForm
End If
%>
我没有对此进行测试,但如果它不是 100% 正确,那么它非常接近,您可以对其进行调整以按照您的需要工作。如果您需要进行任何修改,请告诉我,以便我为未来的用户更新答案。
【讨论】:
只需检查查询字符串中的密码。根据问题要求,这非常简单,我真的不敢在这个脚本中放任何远程敏感的东西,但对于绝对基本的保护,这应该足够了。
我从查询参数名称中删除了密码,因为我相信很多人都会嗅探通过网络传输的那种数据。
示例网址:
http://www.mysite.com/page.asp?mysecretquery=mypassword
<%
if request.querystring("mysecretquery") = "mypassword" then
%>
<html>
<body>
My data.
</body>
</html>
<%
else
response.write("Error")
end if
%>
【讨论】: