如果说一个网站需要用户登录后才能浏览,那么用户登录控制就不可避免。但是对于几百个以上的页面,不可能每个页面都做一次登录验证。因此,这需要在母版页中进行登录控制,这样就可以使得每一个使用这个母版页的子页面在加载的时候都会自动的进行一次登录验证。首先是创建一个网站项目,添加母版页和子页面,子页面引用母版页,同时还要创建一个登录页面。然后中母版页的Page_Load方法中调用验证登录的函数IsLogin

protected void IsLogin() {
            try
            {

                if (Session["userinfo"] == null)
                {
                    Response.Redirect("/User/WebUserLogin.aspx");
                }
            }
            catch (Exception ex)
            {
                Response.Redirect("/User/WebUserLogin.aspx");
            }
        }

在这个验证函数中,主要是查看会话中是否保存了用户信息来判断用户是否中登录状态下访问子页面了。如果有用户信息,那么就通过验证,如果没有,就转到登录页面,在登录页面中,对登录按钮做如下操作

try {
                string username = Request["TxtUserName"].Trim();
                string pwd = Helper.MD5Encrypt(Request["TxtUserPwd"].Trim());
                User userinfo = usermanage.UserLogin(username, pwd);
                if (userinfo != null)
                {
                    Session["userinfo"] = userinfo;
                    Response.Redirect("~/Index.aspx");
                }
                else {
                    this.ClientScript.RegisterStartupScript(this.GetType(), "login", "<script type='text/javascript'>artDialog({ content: '请输入正确的用户名和密码!', lock: true, title: '提示' });</script>");
                }
            }catch{

            }    

其中的UserLogin方法用于查询数据库是否有对应的用户名和密码

登录页面的UI

<script>
function onKey() {
if (window.event.keyCode == 13) {
document.getElementById("LinkButtonUserLogin").click();
}
}
function checkform() {
var username = $('#<%=TxtUserName.ClientID%>').val();
var psd = $('#<%=TxtUserPwd.ClientID%>').val();
if (username == "") {
artDialog({ content: '用户名不能为空!', lock: true, title: '提示' });
return false;
}
if (psd == "") {
artDialog({ content: '密码不能为空!', lock: true, title: '提示' });
return false;
}

}
</script>

......<div class="login-main">
                    <div style="color: red">
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="请输入用户名" ControlToValidate="TxtUserName" Display="Dynamic" ValidationGroup="ValidUserLogin"></asp:RequiredFieldValidator>
                    </div>
                    <asp:TextBox ID="></asp:TextBox>
                    <asp:TextBox runat="></asp:TextBox>
                    <asp:LinkButton ID="LinkButtonUserLogin" name="LinkButtonUserLogin" runat="server" OnClientClick="return checkform();" OnClick="LinkButtonUserLogin_Click" ValidationGroup="ValidUserLogin"></asp:LinkButton>
                    <%--<a href="#" runat="server" onclick=""></a>--%>
                </div>

asp.net 一个简单的登录控制的更多相关文章

  1. 第四章 .net core做一个简单的登录

    项目目标部署环境:CentOS 7+ 项目技术点:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginx 开源地址:https ...

  2. jmeter 压力测试(一)一个简单的登录

    写在最前面,之所以记录这个最最简单的http的登录,是因为捣鼓了一天,真的是找错也找不错了,后来请教的同事,重新写了一个ok了,最后发现竟然是因为[http信息头]写的有问题,简直是!!醉了 如下,这 ...

  3. 7. Swift 基于Xmpp和openfire实现一个简单的登录注册

    1. 基本步骤:首先导入Xmpp框架,配置环境 ->由于我们使用的是OC的Xmpp框架,再进行Swift开发时需要进行桥接. 具体方法就是创建一个基于c的.h的头文件,然后将我们需要编译OC的语 ...

  4. node.js 实现一个简单的登录拦截器

    拦截器在web开发中随处可见,比如站点的管理后台,不说所有人都能进入,所以就需要做一个拦截器并友好的跳转到提示页. 下面我们简单实现一种,判断用户是否登录成功,登录不成功的用户自动重定向到登录页面. ...

  5. go语言实现一个简单的登录注册web小程序

    最近学习golang也有一段时间了,基础差不多学了个大概,因为本人是java程序员,所以对web更感兴趣.根据<go web编程>中的例子改编一个更简单的例子,供新手参考,废话不多说,上菜 ...

  6. Unity 3D 一个简单的角色控制脚本

    之所以写这个脚本,是因为我想起了我还是新手的时候,那时为了一个角色控制脚本百度了半天还是一无所获,因为看不懂啊,都写的太高级了 希望这个脚本能够帮助那些 像曾经的我一样迷失于代码中的新手们能够清晰的理 ...

  7. c#利用三层架构做一个简单的登录窗体

    就个人而言,三层架构有点难理解,不知道该如何下手,各层与各层之间怎么调用 最近一直在研究三层架构,经过网上学习与多方打听写一下自己的心得.有不足之处,可以评论和私聊探讨 言归正传: 三层架构(3-ti ...

  8. CSS样式案例(2)-制作一个简单的登录界面

    首先来张完工的效果图. 一.html文件如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...

  9. AJAX - 实现一个简单的登录验证

    /**Ajax 编写流程 * 1.创建 XHR (XMLHttpRequest)对象 var xmlHttpReq = false; // var xmlHttpReq = ""; ...

随机推荐

  1. 虚拟机下opensips 启动

    先启动MYSQL mysql:service mysqld start 然后启动RTP代理 rtpproxy -l 192.168.6.199 -s udp:192.168.6.199:7890 -F ...

  2. linux配置yum源

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  3. win7 下面使用任务计划程序执行php脚步

    1.操作系统中点击开始->所有程序->附件->系统工具->任务计划程序 2.如下图 3.下一步,如图: . 4.下一步,如图 5.下一步,如下图: 6.这样设置好以后,就可以了 ...

  4. 解决net-snmp正确输出MAC地址和判断空的IP地址

    function readVarbinds (buffer, varbinds) { buffer.readSequence (); while (1) { buffer.readSequence ( ...

  5. PHP学习笔记八【数组】

    <?php //定义数组 $hens[0]=3; $hens[1]=5; $hens[2]=1; $hens[3]=3.4; $hens[4]=2; $hens[5]=50; //遍历整个数组 ...

  6. 003 assert简述

  7. Update与Mysql、Sqlsever中的随机数

    批量修改数据库中的字段为随机数时 Mysql中的写法: )--取1-50的随机数 Sqlsever中的写法: update t set col=ABS(CHECKSUM(NEWID()))%50+1 ...

  8. Turn the corner--hdu2438(3分法)

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...

  9. centos 安装amp 运行环境+配置虚拟地址

    一.安装 MySQL 首先来进行 MySQL 的安装.打开超级终端,输入: [root@localhost ~]# yum install mysql mysql-server 安装完毕,让 MySQ ...

  10. PHP中的错误处理

    程序只要在运行,就免不了会出现错误!或早或晚,只是时间问题罢了. 错误很常见,比如Notice,Warning等等.此时一般使用set_error_handler来处理: <?php set_e ...