快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

第六章 管理员登陆页的制作

第六章    管理员登陆页的制作           admin_loing.aspx管理员登陆页

          操作步骤:

          1、首先打首页index.aspx文件,在合当的地方添加一个链接到本页的文字或图片链接。

          2、创建并打开一个新admin_loing.aspx,插入表单,切换到代码视图,给表单添加runat="server"属性:

<form id="form1" method="POST" runat="server" >
</form>          3、在表单内按以下截图页面样式插入表格和文本域:

      

       用户名和密码文本域代码清单:

用户名:<input name="AdminName" type="text" id="AdminName" runat="server" >
密    码:<input name="AdminPws" type="text" id="AdminPws" runat="server" >
登陆按扭:<asp:button ID="Button1" runat="server" Text="登陆" OnClick="sub_ling" />

      上面代码不外乎是普通的HTML标签加上runat="server" 属性,使其成为HTML服务器控件;登陆按扭用的是Button控件,因为要用到它来触发事件。

          3、切换到代码视图,把ResponseEncoding="gb2312"删除掉。否则数据集就不能筛出结果了。

          4、插入数据集

          因为DW MX的ASP.NET服务器行为中没有登陆用户行为,我们只能用数据集和手工改写一些代码来实现这个功能了。不用担心,代码不多。

       启动数据集,设置如下:

      

       点击“高级..”按扭,切换到高级数据集模式。我们看到了由DW MX生成的部分SQL语句:

      

       这是不够的,我们还必须添加多一个条件,即密码字段。只有用户名和密码条件都匹配时,才能让数据集筛出结果。

       点击参数“+”,弹出“编辑参数”对话框,填写名称为“@AdminPws”,类型选择“WChar”,如下图:

      

    单击“建立”弹出“生成值”对话框,名称为AdminPws,源选择“表单变量”,默认值为“0”。如下图:

      

       单击“确定”保存设置,一直回到主数据集对话框。修改SQL语句,修改结果如下图所示:

      

       好了,单击“确定”保存工作成果。

       5、切换到数据“绑定”面板,把“用户名”AdminName字段绑定于页面,插入页面任何地方均可,因为我们只用它来检查数据集是否筛出记录,然后判断该字段动态变量是否为空,不为空的话就赋值给session并同时转向index.aspx页。

             切换到代码视图,找到刚才绑定的字段,如下:

<%# DataSet1.FieldValue("AdminName", Container) %>              把它改成调用StrAdmin自定义函数:

<%#StrAdmin(DataSet1.FieldValue("AdminName", Container)) %>              当管理员输错用户名或密码,登陆不成功,给出错误提示信息,用Label控件实现:

<asp:label ID="Label1" runat="server" Text="对不起!用户名或密码错误!"></asp:label>           该控件可以放在表单内的任何位置。

          在页的<HTML>标签上面添加页面加载时触发事件和响应登陆按扭的事件代码,以及判断数据集字段值是否为空的函

数:

<script runat="server">
function StrAdmin(ParName as string) as string''''自定义一个名为“StrAdmin”的函数
if ParName<>nothing then''''当动态变量不为空时
session("MM_Username")=ParName''''把管理员用户名赋值给session变量
response.Redirect("index.aspx")''''登陆成功后转到留言本首页
end if
end function
Sub Page_Load(Src As Object, E As EventArgs)
Label1.Visible="False"''''初始化Label控件不显示
End Sub
Sub sub_ling(Src As Object, E As EventArgs)
Label1.Visible="True"''''单击按扭触发该事件,显出错信息,但是当管理员登陆成功后
''''已由response.Redirect("index.aspx")转向首页
End Sub
</script>        然后打开数据库表admin,添加管理员用户名和密码:

      

       当然,你可以添加多个管理员。有关于留言本的管理员用户名和密码修改的页面本教程不再介绍,不外乎是简单的插入、更新操作,看到后面几章后你就会自己动手做一个这样的页面了。

       测试一下,用户登陆成功后就转到index.aspx,否则给出错信息。

       下面来进一步完善页面,当管理员登陆成功后,不可以再进行登陆了,所以必须把整个登陆表单元素隐藏起来。这个功能用Panel控件来实现。

       选中表格,如下图:

       

       切换到源代码视图,表可标签被选中,在其上下各添加:

<asp:Panel id="Panel1" runat="server" > 刚才选中的表格标签及服务器控件代码...

</asp:Panel>

         除了隐藏表格,还应该给出提示信息,提示管理员他已经登陆,用Label控件显示:

<asp:label ID="Label2" runat="server" Text="你已经登陆了!<a href=''''index.aspx''''>请返回首页</a>"></asp:label>        此控件可以放在表单内任何地方。

       在Page_Load方法块内初始化Panel和Label控件是否呈现出来:

if not session("MM_Username") is nothing''''当session变量不为空时
Panel1.Visible="False"''''控件被隐藏
Label2.Visible="true"''''初始化Label控件不显示
else
Label2.Visible="false"''''未登陆Labe2控件不显示
End if        添加在Sub Page_Load(Src As Object, E As EventArgs)这句代码的下面,如下(加粗部分):

Sub Page_Load(Src As Object, E As EventArgs)
if not session("MM_Username") is nothing''''当session变量不为空时
Panel1.Visible="False"''''控件被隐藏
Label2.Visible="true"''''初始化Label控件不显示
else
Label2.Visible="false"''''未登陆Labe2控件不显示
End if

Label1.Visible="False"''''页面加载时初始化Labe1控件不显示
End Sub        管理员登陆页已经制作完毕。

       由于考虑DW MX数据集的方便性,所以我没有采用手写代码,同时也易于初学者操作。实际上本页面仍然存在执行效率的问题,因为页面被请求即执行数据集查询命令,这是须要时间的。比较好的方法是应该在按下“登陆”按扭后才执行记录查询。好在这不是论坛,管理员也不是经常登陆吧,所以这里就不再深入地介绍手写方法了。
 

顶(1)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论