自己动手做博客之日志管理-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大类,我们将每一类的管理功能封装成一个用户控件来实现,从下节开始会依次介绍。


 

Win10使用Administrator登录

在桌面“此电脑”右键菜单中,点击管理,进入计算机管理。 2 在计算机管理员,找到“本地用户组”。 3 点击“本地用户组”-“用户”,在右侧可以看到Administrator用户与当...
  • hebo5207_
  • hebo5207_
  • 2016-12-17 14:54:01
  • 725

普通用户登录和管理员登录区分

查阅的资料,先缝合成自己的,写登录注册页面是要注意的细节。 http://bbs.csdn.net/topics/390888578...
  • qq_32095903
  • qq_32095903
  • 2017-03-24 11:43:37
  • 1771

oracle 管理员不用密码登录

(1) 以oracle身份登录数据库,命令:su - oracle (2) 进入Sqlplus控制台,命令:sqlplus /nolog (3) 以系统管理员登录,命令:connect / as ...
  • hg3762
  • hg3762
  • 2017-01-23 17:25:43
  • 2394

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

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

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

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

oracle 系统管理员登陆

  在命令行中输入 sqlplus /nolog (使用/nolog参数表示启动sql plus ,但不连接到oracle数据库)与只是输入 sqlplus的区别...
  • soft_xiaohui
  • soft_xiaohui
  • 2010-07-26 11:09:00
  • 8833

自己动手做博客之日志管理-1.1 系统分析

    随着互联网的高速发展,越来越多的人和行业接触到了她——博客,并开始了自己了业务。与此同时,博客也成为继免费主页、论坛、QQ和邮箱之后——草民的新秀,博客也成为时下Web 2.0的代名词。   ...
  • somboy
  • somboy
  • 2007-10-08 14:15:00
  • 1946

自己动手做博客之日志管理-2.2 模板页

    VS.NET 2005中提供了ASP.NET 2.0核心框架,ASP.NET 2.0改进了以往版本对网页设计方面支持上的不足,新增和增强了很多的功能,其中母版页控件就是一例。    将母版页称...
  • somboy
  • somboy
  • 2007-10-09 13:12:00
  • 1606

<em>管理员</em>和普通用户的<em>登录</em>系统

<em>登录</em>系统分为<em>管理员</em>和普通用户两类分别登陆。他们分别拥有不同的权限。... 普通用户的注册和<em>管理员</em>的权限操作 关于用户<em>登录</em>权限的分配,<em>管理员</em>,普通用户,一看便知。...
  • 2018年04月09日 00:00

Spring Security实现后台管理员登录(一)

一、实现功能   二、数据表设计 为了测试方便,这里创建一个简单的数据表,只含有name和password两个字段。 插入一条数据,name为admin,password为e10adc3949ba5...
  • haishu_zheng
  • haishu_zheng
  • 2017-04-12 09:45:20
  • 12009
收藏助手
不良信息举报
您举报文章:自己动手做博客之日志管理-5.1 管理员登录
举报原因:
原因补充:

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