如果说一个网站需要用户登录后才能浏览,那么用户登录控制就不可避免。但是对于几百个以上的页面,不可能每个页面都做一次登录验证。因此,这需要在母版页中进行登录控制,这样就可以使得每一个使用这个母版页的子页面在加载的时候都会自动的进行一次登录验证。首先是创建一个网站项目,添加母版页和子页面,子页面引用母版页,同时还要创建一个登录页面。然后中母版页的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. rem布局下使用背景图片和sprite图

    现在移动端页面用rem布局已经是一大流派了,成熟的框架如淘宝的flexiable.js,以及更轻量级的hotcss.用rem作单位使得元素能够自适应后,还有一块需要关注的,那就是背景图片.本文就来聊聊 ...

  2. sql server数据库区分大小写设置

    数据库表中字段alter Table TableName 区分大小写 ALTER Column ColumnName VARCHAR(50) COLLATE Chinese_PRC_CS_AS不区分大 ...

  3. java替换字符串和用indexof查找字符

    java自带替换 String s="hlz_and_hourui哈哈"; String new_S=s.replaceAll("哈", "笑毛&qu ...

  4. c# 调用EXCEL在VS上能正常运行,部署在IIS上不能实现,在VS中运行页面和发布之后在IIS中运行的区别

    发现一篇文章,很好,解决了这个问题:感谢原博主!特此做个笔记. 地址:http://www.cnblogs.com/zhongxinWang/p/3275154.html 发布在IIS上的Web程序, ...

  5. STM32的例程GPIO的汇编指令初探

    任务一:寻找main函数的汇编指令集 任务二:寻找main函数中的SystemClock_Config函数的汇编指令集 寻找main函数的汇编指令集 运行例程中GPIO工程时,总会加载startup_ ...

  6. (转+原)VC编译错误:uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMT.lib(new.obj) 中定义

    参考网址:http://zhanyonhu.blog.163.com/blog/static/16186044201023094754832/ 1>uafxcw.lib(afxmem.obj) ...

  7. Building Android Apps 30条建议

    Building Android Apps — 30 things that experience made me learn the hard way There are two kinds of ...

  8. jQuery的类数组对象结构

    Query就是为了获取DOM.操作DOM而存在的 所以为了更方便这些操作,让节点与实例对象通过一个桥梁给关联起来,jQuery内部就采用了一种叫"类数组对象"的方式作为存储结构,所 ...

  9. Python网页信息采集:使用PhantomJS采集淘宝天猫商品内容

    1,引言 最近一直在看Scrapy 爬虫框架,并尝试使用Scrapy框架写一个可以实现网页信息采集的简单的小程序.尝试过程中遇到了很多小问题,希望大家多多指教. 本文主要介绍如何使用Scrapy结合P ...

  10. 使用微软的(how-old.net)构建智能门店管理系统

    现在是大数据时代,每个企业都要对自己的客户有全面的认识,这样才能最准确的分析客户,做出相应的决策.在实体的门店中,对于客户的管理还是比较低级,很多客户对于企业来说是哑终端,即对于企业来说,完全不知道客 ...