自己动手做博客之日志管理-5.1 管理员登录

原创 2007年10月11日 13:13:00
    经过前面几个步骤日志管理系统的前台就算制作完成了,可以打开首页,单击一个类别链接查看日志列表,再单击日志标题来浏览日志,然后为日志添加评论后返回首页。从本节开始,我们将介绍如何针对前台的这些数据进行管理,包括添加类别、添加日志、管理评论等。

    我们不希望自己的博客被用户改的面目全非,也不希望用户可以随意发表日志,因此为博客设置一个管理员是很必要的。为了区分管理员的特殊身份,在系统中设置了管理员登录入口以及密码,只有在从登录入口成功登录后才能执行管理操作。

    在系统中添加一个名为Log_Admin的内容页作为后台登录页面,然后再添加适当的布局,如图1-12所示了最终效果。

1-12  布局后台登录页面

    在这个页面中,用户名文本框ID值为name,密码文本框IDpwd。为了防止非法登录,需要对用户名及密码进行验证,这里使用了前面介绍过的RequiredFieldValiator控件对用户名和密码文本框进行验证,使这两个文本框中的内容不能为空,否则无法登录。登录按钮的单击事件代码如下所示:

    protected void Button1_Click(object sender, EventArgs e)

    {

        XmlNodeList adminname, adminpwd;

        XmlDocument objxml;

        string objload, name1, pwd1, oldname, oldpwd;

        //指定文件路径

        objload = HttpContext.Current.Server.MapPath("images/admin.xml");

        objxml = new XmlDocument();

        //获取输入的用户名和密码

        oldname = name.Value;

        oldpwd = pwd.Value;

        //载入XML文档

        objxml.Load(objload);

        //取得节点adminnameadminpwd的名称

        adminname = objxml.GetElementsByTagName("adminname");

        adminpwd = objxml.GetElementsByTagName("adminpwd");

        //进行MD5加密

        name1 = FormsAuthentication.HashPasswordForStoringInConfigFile(oldname, "MD5");

        pwd1 = FormsAuthentication.HashPasswordForStoringInConfigFile(oldpwd, "MD5");

        //判断条件

        if (name1!=adminname.Item(0).InnerText){

            Label1.Visible = true;

            Label1.Text = "用户名错误!";

        }

        else{

            if( pwd1!=adminpwd.Item(0).InnerText){

               Label1.Visible = true;

               Label1.Text = "密码错误!";

            }

            else{

                //输入正确,存储用户名

                Session["admin"] = name.Value;

                Response.Redirect("Admin_Index.aspx");

            }

        }

        objxml = null;

}

    在单击事件的代码中,首先定义了几个变量,其中包含admin.xml的路径。然后创建一个XmlDocument类对象objxml,并使用这个对象的Load方法载入XML文档。

    在程序中oldnameoldpwd保存的是用户输入的密码,对它们进行MD5加密。接下来的if嵌套语句判断取得的用户名和密码是否与XML文档中保存的管理员登录信息相同,如果不同,显示提示登录错误的信息,阻止用户登录。否则,把取到的用户名保存到Session对象中,并转向管理页面Admin_Index.aspx

    图1-12所示的布局中“重置”按钮的单击代码如下所示:

    protected void Button2_Click(object sender, EventArgs e)

    {

        name.Value = "";

        pwd.Value = "";

    }

    管理员登录页面Log_Admin.aspx是由在母版页中单击“我要管理”链接后进入的,如果管理员已经登录,单击这个链接将会直接转到向管理页面Admin_Index.aspx。这段的实现代码如下所示,根据Session对象来判断:

   protected void Page_Load(object sender, EventArgs e)

   {

       if (Session["admin"] != null)

       {

           Response.Redirect("Admin_Index.aspx");

       }

   }

    图1-13所示了管理员登录页面的执行效果以及登录后的页面。

1-13  管理员登录

    如图1-13所示,在Admin_Index.aspx页面中显示了当前的管理员并,提供了退出登录的链接,这是由下列代码实现的。

<div class="channel_intro">

                            管理员:<%=Session["admin"]%>已登录 &nbsp;&nbsp;&nbsp;

                            <a href="Admin_Index.aspx?exit=yes">退出登录</a>

</div>

    下面介绍管理员退出的实现,从上面的代码可以看到“退出登录”链接的为自身页面,然后指定了个exit参数值为yes。根据这个地址,在Admin_Index.aspx的页面载入过程中添加如下代码:

 protected void Page_Load(object sender, EventArgs e)

 {

      if (Request["exit"] == "yes")

      {

          Session["admin"] = null;

          Response.Redirect("Log_Admin.aspx");

      }

      if (Session["admin"] == null)

      {

          Response.Redirect("Log_Admin.aspx");

      }

 }

    第一个if判断是否要退出登录,如果是则清空Session对象并转向登录页面。第二个if判断了如果是非法登录则直接转向登录页面。

    有了管理员的登录功能,就像为系统添加了一道屏障,可以防止别人破坏系统。在上面代码中看到登录之后转向了Admin_Index.aspx页面,这是系统管理的首页,如图1-14所示。

1-14  Admin_Index.aspx页面

    在图1-14中看到需要管理的可分为日志分类、日志、评论和管理员资料4大类,我们将每一类的管理功能封装成一个用户控件来实现,从下节开始会依次介绍。


 

WebSphere的管理员界面

我们可以在Eclipse的控制台中,右键运行打开管理员界面 还有更简单的方式 开始菜单-->所有程序-->找到IBM的WEB Sphere                             ...
  • sxzlc
  • sxzlc
  • 2017年08月04日 00:20
  • 285

使用PHP制作 简易员工管理系统之二(管理员登陆界面以及验证)

一、文件login.php 管理员登陆系统 管理员登陆
  • FenDouXiaoNiao
  • FenDouXiaoNiao
  • 2015年06月02日 15:45
  • 2876

自己做的一个后台管理员登陆界面 .cshtml

管理员登录 L O G I N F O R M ...
  • ColorWaterer
  • ColorWaterer
  • 2014年12月10日 18:55
  • 2396

#学习笔记#(3)会员管理系统登录界面HTML+CSS

denglu.html 会员管理系统登录 会员管理系统 用户名: 密   码: 记住密码 找回密码 //鼠标进入离开时改变透明度——未完成 function mous...
  • qq_24734285
  • qq_24734285
  • 2015年11月30日 17:57
  • 809

OpenStack日志管理&配置管理安全性分析

OpenStack云平台的功能复杂、组件繁多,很多功能的设置都需要专门的配置管理模块来完成。在OpenStack云平台中,oslo项目就主要负责独立出系统中可重用的基础功能,其中oslo.config...
  • hsluoyc
  • hsluoyc
  • 2015年10月21日 14:24
  • 1254

使用PHP制作 简易员工管理系统之三(管理员登陆界面以及数据库验证)

一、修改login.Process.php
  • FenDouXiaoNiao
  • FenDouXiaoNiao
  • 2015年06月02日 16:38
  • 1793

gitlab忘记管理员账户或密码解决记录

问题:      很久之前在Ubuntu服务器上为部门安装部署的Gitlab,因为最初配置的比较      完善,后续使用过程中几乎没有用过管理员账户,突然有一天同事要求增加      项目可创建数目...
  • oNirvana12345678
  • oNirvana12345678
  • 2014年03月28日 12:01
  • 1972

浅谈管理系统操作日志设计(附操作日志类)

管理系统的操作日志如何做成通用的模块一直是个让我头疼的问题,不过看了博客园里的某篇文章后,现在基本解决了。   相关文章链接:《系统操作日志设计》   在开始做之前,必须把两个日志分清楚,...
  • sd4015700
  • sd4015700
  • 2015年08月10日 13:14
  • 6345

Java GUI学生成绩管理系统--管理员界面

管理员有教师管理、学生管理、成绩管理三大功能,教师管理和学生管理主要是增删查改,成绩管理主要是录入成绩和修改成绩,成绩排序等功能。 本界面详细代码如下: package main; import ja...
  • Leonard_Kongtanhuo
  • Leonard_Kongtanhuo
  • 2017年06月23日 12:27
  • 2002

Django项目实践4 - Django站点管理(后台管理员)

http://blog.csdn.net/pipisorry/article/details/45079751 上篇:Django项目实践3 - Django模型 Introduction 对于...
  • pipisorry
  • pipisorry
  • 2015年07月05日 18:05
  • 11274
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自己动手做博客之日志管理-5.1 管理员登录
举报原因:
原因补充:

(最多只允许输入30个字)