asp制作用户登陆界面
- 格式:docx
- 大小:26.57 KB
- 文档页数:1
使用ASP 技术实现网站的注册与登录功能3.3用户登录1〕创立登录页面在站点中创立用户登录界面index.asp,如图3。
表单form1中包括用户名、密码、验证码、登录、注册控件。
其中使用Javascript创立表单检测函数,在提交表单时调用此函数。
要求用户名和密码不为空时,才提交表单到处理页面;否那么不提交。
本页面局部代码如下:3.4创立登录处理页面在站点中创立第三个页面,用户登录处理界面login_sub.asp,登录成功跳转到test.asp考试页面;登录不成功,给出提示“用户名或密码不正确!〞,跳转回登录界面index.asp。
在判断登录不成功时,使用if嵌套语句,设置login变量判断,两种登录不成功的情况都设置设置login=2。
在使用判断当login=2,提示“用户名或密码不正确!〞,登录不成功,跳转回登录界面。
3.5创立用户在线考试主页面创立用户在线考试主页面test.asp。
4用户注册4.1创立用户注册页面创立用户注册页面reg.asp,方法同登录页面。
表单form1中包含用户名、密码、确认密码、提交、注册控件。
其中使用Javascript创立表单检测函数checkform〔〕,在提交表单时调用此函数。
要求用户名和密码不为空,同时密码和确认密码要一致时,才提交表单到注册判断页面;否那么不提交。
方法同登录页面的表单检测函数。
4.2创立注册判断页面创立注册判断页面reg_sub.asp,当用户名已经存在时,不能注册,设置注册变量flag=2;否那么可以注册,设置注册变量flag=1。
使用URL传递flag变量,到注册处理页面代码如下:4.3创立用户注册处理页面创立注册处理页面action.asp,action页面通过从reg_sub.asp页面传递过来的注册变量flag的值,判断是否进行注册。
当flag=1时,可以注册,注册成功后提示“注册成功!〞,跳转回登录界面,登录;当flag=2时,不可以注册,提示“用户名已存在,请重新注册!〞,跳转回注册界面,重新注册。
登陆注册功能实现1.asp页⾯,login.aspx<%@ Page Language="C#" AutoEventWireup="true" CodeFile="login.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="/1999/xhtml"><head id="Head1" runat="server"><title>login</title><script src="js/aj.js" type="text/javascript"></script><script src="js/loginCookies.js" type="text/javascript"></script><script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script><script type="text/javascript">window.onload = function () {document.getElementById('username').focus(); //⽤户名框获得焦点if (GetCookie('username') != null && GetCookie('userpass') != null)//设置记住密码的登录页⾯{document.getElementById("username").value = GetCookie('username');document.getElementById("userpass").value = GetCookie('userpass');}}String.prototype.Trim = function () //⾃定义的去除字符串两边空格的⽅法{return this.replace(/(^\s*)|(\s*$)/g, "");}function login()//登录{var aj = new ajax();var username = document.getElementById("username").value.Trim();var userpass = document.getElementById("userpass").value;var url = "login.aspx?username=" + escape(username) + "&userpass=" + escape(userpass);aj.get(url, callback);function callback(obj) {var response = obj.responsetext;var res = response.split('\n');if (res[0] == "ok") {if (document.getElementById("cbRememberPwd").checked) {SetCookie('username', username, 1); //保存密码⼀个⽉SetCookie('userpass', userpass, 1);}else {SetCookie('username', username);SetCookie('userpass', userpass);}window.open("loginIndex.htm", "_self");}else {alert("密码错误");}}}function reset()//重置{window.onload(); //执⾏窗体登录事件document.getElementById("username").value = "";document.getElementById("userpass").value = "";}function enterLogin() {if (event.keyCode == 13) //如果按下的是Enter键的话,就执⾏登录语句{login();}}</script></head><body><div style="text-align: center"><form id="form1" runat="server"><table border="1" cellpadding="1"><tr><td align="center" valign="middle">⽤户名:</td><td align="center" valign="middle"> <asp:TextBox ID="username" runat="server"></asp:TextBox></td></tr><tr><td align="center" valign="middle">密码:</td><td align="center" valign="middle"> <asp:TextBox ID="userpass" TextMode="Password" runat="server"></asp:TextBox></td></tr><tr><td align="center" colspan="3" valign="middle"><input id="cbRememberPwd" type="checkbox" />记住密码⼀个⽉</td></tr><tr><td align="center" colspan="3" valign="middle"><%-- <input id="btnOK" type="submit" value="登录" onclick="login()" /> --%><asp:Button ID="btnOK" runat="server" Text="登陆" BorderStyle="None" OnClick="Button1_Click"OnClientClick=" return login();" /> <input id="btnReset" type="button" value="重置" onclick="reset()" runat="server" /><%-- <asp:Button ID="Button1" Text="重置" runat="server"/> --%></td></tr></table><a href="regedit.aspx">注册</a></form></div></body></html>2.aj.js 部分的js代码function ajax() {function getXHR()//获取xmlhttprequest{var request = false;try {request = new XMLHttpRequest();}catch (trymicrosoft) {try {request = new ActiveXObject("Msxml2.XMLHTTP");}catch (othermicrosoft) {try {request = new ActiveXObject("Microsoft.XMLHTTP");}catch (failed) {request = false;}}}return request;}this.get = function (openUrl, successFun)//ajax对象的get⽅法,通过get⽅式发送请求,openUrl为请求的页⾯,successFun为成功回调执⾏的函数{var request = getXHR();request.open("get", openUrl, true);// request.onreadystatechange = function ()// {// if (request.readystate==4)// {// if (request.status==200)// {// successFun(request);// }// }// };request.onreadystatechange = update;function update() {if (request.readystate == 4) {if (request.status == 200) {successFun(request);}}}request.send(null);}this.post = function (openUrl, sendContent, successFun)//ajax对象的post⽅法,通过post⽅式发送请求,openUrl为请求的页⾯,successFun为成功回调执⾏的函数 {var request = getXHR();request.open("post", openUrl, true);request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //告诉服务器发送的是⽂本request.onreadystatechange = update;function update() {if (request.readystate == 4) {if (request.status == 200) {successFun(request);}}}request.send(sendContent);}}3.loginCookies.js 代码登陆页⾯信息缓存function SetCookie(name, value, expires, path, domain, secure) {var today = new Date();today.setTime(today.getTime());if (expires) { expires *= 2592000; }var expires_date = new Date(today.getTime() + (expires));document.cookie = name + "=" + escape(value)+ (expires ? ";expires=" + expires_date.toGMTString() : "")+ (path ? ";path=" + path : "")+ (domain ? ";domain=" + domain : "")+ (secure ? ";secure" : "");}function GetCookie(name) {var cookies = document.cookie.split(';');var cookie = '';for (var i = 0; i < cookies.length; i++) {cookie = cookies[i].split('=');if (cookie[0].replace(/^\s+|\s+$/g, '') == name) {return (cookie.length <= 1) ? "" : unescape(cookie[1].replace(/^\s+|\s+$/g, ''));}}return null;}function Delcookie(name, path, domain) {document.cookie = name + "="+ (path ? ";path=" + path : "")+ (domain ? ";domain=" + domain : "")+ ";expires=Thu, 01-Jan-1970 00:00:01 GMT";}4.login的后台台⾯,即login.aspx.csusing System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void Button1_Click(object sender, EventArgs e){//数据库连接字符串string conn = "server=(local);database=TestDB;User ID=sa;Password=123456;";SqlConnection sqlcon = new SqlConnection(conn);if (Request["username"] != null && Request["userpass"] != null){string name = Request["username"].ToString();string pwd = Request["userpass"].ToString();string strSql = "select * from zxl_login_users where username='" + name + "'" + " and userpass='" + pwd + "'"; sqlcon.Open();SqlCommand Comd = new SqlCommand(strSql, sqlcon);SqlDataReader dr = Comd.ExecuteReader();if (dr.Read()){Response.Redirect("html/success.htm");}else{Response.Redirect("html/error.htm");}}}}5.VerifyUserNameHandler.ashx<%@ WebHandler Language="C#" Class="VerifyUserNameHandler" %>using System;using System.Web;using System.Collections;using System.Collections.Generic;using System.Data.SqlClient;public class VerifyUserNameHandler : IHttpHandler{public void ProcessRequest(HttpContext context){string _name = context.Request.QueryString["para"];_name = string.IsNullOrEmpty(_name) ? "" : _name;string connstring = System.Configuration.ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;System.Data.DataTable zxl_login_users = new System.Data.DataTable();using (SqlConnection conn = new SqlConnection(connstring)){if (conn.State != System.Data.ConnectionState.Open){conn.Open();}SqlCommand cmd = new SqlCommand("P_test", conn);mandType = mandType.StoredProcedure;cmd.Parameters.Add("@username", System.Data.SqlDbType.VarChar).Value = _name;SqlDataAdapter adapter = new SqlDataAdapter(cmd);adapter.SelectCommand = cmd;adapter.Fill(zxl_login_users);}string[] Names = new string[zxl_login_users.Rows.Count]; //创建⼀个与表⾏数相等的固定数组for (int i = 0; i < zxl_login_users.Rows.Count; i++){Names[i] = zxl_login_users.Rows[i][0].ToString();}//string[] Names = [zxl_login_users.Copy]fn;//这⾥⽤Names数组来代替数据库中的结果集if (Array.IndexOf<string>(Names, _name) == -1){context.Response.Write("恭喜,⽤户名可以使⽤。
ASP 用户登录
当用户进入系统时候,首先要输入用户名和密码进行身份验证。
如果用户名和密码都正确,才可以进入系统,享受个性化服务;否则无法进入。
本次练习建立一个用户登录模块,使用Form表单的Post方式提交数据,使用户掌握数据如何提交。
具体步骤如下:
(1)建立Login.asp页面。
该页面提示用户输入自己的会员名及密码,然后单击【登录】按钮提交数据。
具体效果如图2-7所示。
图2-7 登录界面
(2)在登录界面的相应位置,输出当天的日期信息。
如代码如下所示:
断,如果输入正确,则显示该用户名已经成功登陆的信息,反之提示用户名或者密码不正确,并显示重新登陆的超链接。
如代码如下所示:
(5)在浏览器中运行Login.asp页面,输入相应的会员名及密码,效果如图2-
8和图2-9所示。
图2-8 登录成功图2-9 登录失败。
实现不同用户使用不同登录界面
很多用户在开发应用程序时都有这样的需求:管理员角色的账户使用管理员的登录界面进行登录,普通用户角色的账户使用普通用户的登录界面进行登录。
由于的web.config里只能使用一个authentication mode="Forms" 节点,所以,要实现不同用户采用不同的登录界面,一个办法就是创建一个管理员专用的虚拟目录,并设置为应用程序来实现。
下面介绍另外一种采用重定向的办法来解决这个问题。
本文介绍的方法原理是根据登录界面的返回地址进行判断,然后重定向到不同的页面。
下面就是实现的详细过程。
1,创建一个网站,在网站里创建Admin文件夹和User文件夹,分别存放admin和普通用户所使用的文件。
也可以只设置一个 Admin 文件夹。
由于本方法采用的判断返回路径的方法,所以,要能从路径中区分出哪些是admin用户使用的文件夹。
当然,采用其他的判断方法也是可以的。
2,在网站根目录下分别创建3个登录文件:Login.ASP x、UserLogin.ASP x和AdminLogin.aspx。
其中Login.aspx文件起地址转换的作用,Login.aspx文件的主要内容:
在这个文件的代码中,如果ReturnUrl中含有"/admin/",就重定向到AdminLogin.aspx登录界面;否则,就重定向到UserLogin.aspx 登录界面。
asp制作网站登录系统
1、用用ASP制作网站登录系统制作网站登录系统环境:DW+ASP+ACCESS+IIS一、数据库的建立一、数据库的建立打开ACCESS2000,新建数据库〔lanier_db.mdb〕,表名:loginLogin表包函的字段:Id;userid(用户名);pwd(密码)二、打开二、打开DreamweaverMX新建新建conn.asp页面页面.然后把下面的代码复制到然后把下面的代码复制到conn.asp里里。
0thenResponse.write(“连接数据库时产生错误!“)Response.En dEndif%用到此页面时包括即可:三、新建三、新建Login.asp
2、页页……用户名:密码:……将此页的用户名及密码提交到check.asp进行校验.四、建立四、建立check.asp页页alert(用户不存在);history.go(-1);“Response.EndElseifRs(“pwd“)把用户名写入Session(“userid“)是为了防上非法登录,只要在受限页面的头部加入下面代码:alert(对不起,你没有查看该页的权限或已超时,请重新登录!);history.go(-1)“)response.redirect(“loging.asp“)End%
第1页。
ASP 用户登录
当用户进入系统时候,首先要输入用户名和密码进行身份验证。
如果用户名和密码都正确,才可以进入系统,享受个性化服务;否则则无法进入。
本次练习建立一个用户登录模块,使用Form表单的Get方式提交数据,使用户掌握数据是如何提交的。
具体步骤如下:
(1)建立Logins.asp页面。
该页面提示用户输入自己的账号密码以及随机生成的注册码,然后单击【确定】按钮提交数据,单击【取消】按钮重新输入。
具体效果如图3-3所示。
图3-3 登录界面
(2)在登录界面的相应位置,输出欢迎信息以及当天的日期信息。
具体代码
(3)创建Check.asp页面。
该页面使用Request对象获取用户输入的数据并判断,如果输入正确则使用Response.Redirect转向相应的页面,反之提示具体错误信息。
具体代码如下所示:
(5)在浏览器中运行Logins.asp页面,输入相应的账号密码,效果图如3-11、3-12所示。
图3-4 登录成功
图3-5 登录失败
注意图3-5所示地址栏中的地址,在“?”后的字符串“text1=lee&t2=34324&
code=6907&b1=%E6%8F%90%E4%BA%A4”包含了用户输入的所有信息。
以下为个人原创教学例子,任何人引用需注明出自百度用户am7972可供参考该例子涵盖了文本框、密码框、下拉菜单、单选框、复选框及文本区的使用同时在数据的使用方面涵盖了文本型、数值型、日期型、布尔型的使用也涵盖了在会员信息入数据库前,进行严格的数据检查不足处,JS验证还不是太完善,不过有服务端认证足够了<title>会员注册</title><script type="text/javascript"><!--function CheckForm(){if(ername.value == ""){alert("请输入姓名,姓名不能为空!");ername.focus();return false;}if(ername.value.length > 10){alert("输入的姓名长度最多为10个字符!");ername.focus();return false;}}//--></script></head><body><table border="1" width="53%" bordercolorlight="#000000" cellspacing="0" id="table1" height="358" bordercolor="#000000" bordercolordark="#FFFFFF" cellpadding="0"><form method="POST" action="bb.asp" name="userinfo" onsubmit="return CheckForm();"><tr><td colspan="2" height="37"><p align="center">会员注员</td></tr><tr><td width="37%" align="right">姓名:</td><td width="61%"><input type="text" name="username" value="libin" size="13"></td></tr><tr><td width="37%" align="right">密码:</td></tr><tr><td width="37%" align="right">性别:</td><td width="61%"><input type="radio" value="True" checked name="Sex">男<input type="radio" name="Sex" value="False">女</td></tr><tr><td width="37%" align="right">生日:</td><td width="61%"><input type="text" name="userSR" size="11" value="1985-03-12"> </td></tr><tr><td width="37%" align="right">年龄:</td><td width="61%"><input type="text" name="userNL" size="9" value="13"></td></tr><tr><td width="37%" align="right">爱好:</td><td width="61%"><input type="checkbox" name="ah" value="sw">上网<input type="checkbox" name="ah" value="ds" checked>读书<input type="checkbox" name="ah" value="ty">体育</td></tr><tr><td width="37%" align="right">上网方式:</td><td width="61%"><select size="1" name="swfs"><option selected value="bhsw">拨号上网</option><option value="wxsw">无线上网</option><option value="gxsw">光纤上网</option><tr><td width="37%" align="right">个人简介:</td><td width="61%"><textarea rows="9" name="userGrjs" cols="34"></textarea></td></tr><tr><td colspan="2" height="38"><p align="center"><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></td></tr></form></table>====bb.asp的会员注册非法数据监测====<%username = Request("username")userPassword = Request("userPassword")Sex = Request("Sex")userSR = Request("userSR")userNL = Request("userNL")ah = Request("ah")swfs = Request("swfs")userGrjs = Request("userGrjs")'判断数据合法性,绝对不能让非法数据进入系统'判断姓名username合不合法,是否包含非法数据username = Trim(username) '例如:" 张三"经过处理之后变成"张三" If username ="" ThenResponse.write "姓名不能为空"Response.EndEnd IfIf Len(username)>10 ThenResponse.write "姓名字数不能超过10个字" 'Len("Z")=1 Len("国")=2Response.EndEnd IfFor i = 1 To Len(username)q = Mid(username,i,1)If InStr("!@#$%^&*()_-+|<>?/"",.",q)>0 ThenResponse.write "姓名不能包含特殊符号!@#$%^&*()_-+|<>?/"",."Response.End'判断密码合不合法,是否包含非法数据userPassword = Trim(userPassword)If userPassword ="" ThenResponse.write "密码不能为空"Response.EndEnd IfIf Len(userPassword)>20 ThenResponse.write "密码字数不能超过20个字"Response.EndEnd If'判断密码合不合法,是否包含非法数据Sex = Trim(Sex)If Sex = "" ThenResponse.write "性别不能为空"Response.EndEnd IfIf Sex <> "True" And Sex <> "False" ThenResponse.write "性别不能为不男不女"Response.EndEnd If'判断生日合不合法,是否包含非法数据userSR = Trim(userSR)If userSR ="" ThenResponse.write "生日不能为空"Response.EndEnd IfIf Len(userSR)<8 Or Len(userSR)>10 Then '例如:2012-6-3 2012-11-23Response.write "你输入的生日字数不对,应为2012-6-3或2012-11-23格式"Response.EndEnd IfIf IsDate(userSR)=False ThenResponse.write "你输入的生日格式不能转化为日期,请核实"Response.EndEnd IfIf DateDiff("yyyy",userSR,Date())<1 Or DateDiff("yyyy",userSR,Date())>200 Then Response.write "根据你输入的生日你可能小于1岁或已经超过200岁了,请核查重新输入" Response.EndEnd If'判断年龄合不合法,是否包含非法数据userNL = Trim(userNL)If userNL ="" ThenResponse.write "年龄不能为空"Response.EndEnd IfIf IsNumeric(userNL)=False ThenEnd IfuserNL = CInt(userNL)If userNL<0 Or userNL>200 ThenResponse.write "你输入的年龄不能小于0岁或者大于200岁,请核查" Response.EndEnd If'判断爱好合不合法,是否包含非法数据ah = Trim(ah) '选择多个爱好则系统会用,分开//测试ah = Replace(ah," ","")arrAh = Split(ah,",")For i = LBound(arrAh) To UBound(arrAh)If arrAh(i)<>"sw" And arrAh(i)<>"ds" And arrAh(i)<>"ty" Then Response.write i & "你选择的爱好有问题,请核查" & arrAh(i)Response.EndEnd IfNext'判断上网方式合不合法,是否包含非法数据swfs = Trim(swfs)If swfs = "" ThenResponse.write "上网方式不能为空"Response.EndEnd IfIf swfs<>"bhsw" And swfs<>"wxsw" And swfs<>"gxsw" Then Response.write "你选择的上网方式有问题,请核查"Response.EndEnd If'判断个人简介是否为空,是否超出1000个字userGrjs = Trim(userGrjs)If userGrjs = "" ThenResponse.write "个人简介不能为空"Response.EndEnd IfIf Len(userGrjs) > 1000 ThenResponse.write "个人简介不能超过1000个字"Response.EndEnd IfResponse.write "数据合法性检测通过"%>。
应⽤程序中实现windows账号登录本⽂引⽤下⾯的 Microsoft .NET Framework 类库命名空间:System.Web.SecuritySystem.Security.PrincipalSystem.Runtime.InteropServices本⽂介绍了在 应⽤程序中实现模拟的不同⽅式。
如果要在 中的线程上模拟⽤户,可以根据您的要求使⽤以下⽅法之⼀:模拟 IIS 验证的帐户或⽤户为 应⽤程序的所有请求模拟特定⽤户在代码中模拟⾝份验证⽤户在代码中模拟特定⽤户注意:可以使⽤以下代码来确定线程作为哪个⽤户执⾏:System.Security.Principal.WindowsIdentity.GetCurrent().Name模拟 IIS 验证的帐户或⽤户若要在收到 应⽤程序中每个页的每个请求时模拟 Microsoft Internet 信息服务 (IIS) ⾝份验证⽤户,必须在此应⽤程序的Web.config ⽂件中包含 <identity> 标记,并将 impersonate 属性设置为 true。
例如:<identity impersonate="true" />为 应⽤程序的所有请求模拟特定⽤户若要为 应⽤程序的所有页⾯上的所有请求模拟特定⽤户,可以在该应⽤程序的 Web.config ⽂件的 <identity> 标记中指定userName 和 password 属性。
例如:<identity impersonate="true" userName="accountname" password="password" />注意:在线程上模拟特定⽤户的进程的标识必须具有“作为操作系统的⼀部分”权限。
默认情况下,Aspnet_wp.exe 进程在名为 ASPNET 的计算机帐户下运⾏。
asp制作用户登陆界面
三个文件一个html登陆界面一个asp登陆后的界面和一个mdb记录用户名密码的数据库文件
Tijiao3.html
<form method="post"action="fanhui3.asp">
<p>请提供以下信息,然后单击提交。
<p>姓名:<input name="myname" size="36">
<p>密码:<input name="psw" type=password size="36">
<p><input type=submit value="提交"><input type=reset value="清除">
</form>
Fanhui3.asp
<html>
<body>
<%
n1=trim(request.form("myname"))
n2=trim(request.form("psw"))
if n1="" or n2="" then
response.write"<p align=center>出错提示:用户名、密码不能为空!</p>"
response.write"<p aling=center><a href=tijiao3.html>点击这里重新登录!</a></p>" response.end
end if
setcn=server.createobject("adodb.recordset")
cn.open "select name,word from s1 where name='"& n1 &"' and word='"& n2 &"' ","driver={microsoft access driver (*.mdb)};dbq=" &Server.MapPath("s1.mdb")
ifcn.eof then
response.write"<p align=center>出错提示:用户名不存在或者用户名、密码不正确!</p>" response.write"<p aling=center><a href=tijiao3.html>点击这里重新登录!</a></p>"
else
response.write"<h1>欢迎您成功登录本公司网站</h1>"
response.write"<p aling=center><a href=tijiao3.html>更改用户</a></p>"
cn.close
setcn=nothing
end if
%>
</body>
</html>
s1.mdb数据库文件,记录用户名和密码,表名为s1,字段名称分别为name和word。