QWebFramewok使用教程之-(三)自定义带验证码的登录页面

框架中自带了一个登录简单的界面Login.aspx,用于快速开发。如果对界面有要求的可以自己定义登录页面风格.

实现的原理很简单,做好页面UI后,后台代码使用框架自带用户登录验证的接口即可。

  验证接口:QWebFramework.Services.UserServices.GetInstance().CheckedUserLogin(userName, passWordEncrypt, true);

以下为演示的代码:

  1.新建立一个登录页面:DemoLogin.aspx,为了方便起见,演示代码为asp.net webform 提交方式,当然可以使用AJAX方式提交,原理都是一样!

  DemoLogin.aspx 代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DemoLogin.aspx.cs" Inherits="QWebFrameworkDemo.DemoLogin" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
<table width="400" border="0" align="center" cellpadding="5" cellspacing="5">
  <tr>
    <td colspan="2" align="center"><h1>登录演示</h1></td>
  </tr>
  <tr>
    <td width="97">用户名:</td>
    <td width="268">
        <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
      </td>
  </tr>
  <tr>
    <td>密码</td>
    <td>
        <asp:TextBox ID="txtPassWord" runat="server" TextMode="Password"></asp:TextBox>
      </td>
  </tr>
    <tr>
    <td>验证码</td>
    <td>
        <asp:TextBox ID="txtImageCode" runat="server"></asp:TextBox>
        <asp:Image ID="imgValidateCode" ImageUrl="~/Anonymous/ValidateCode.ashx" runat="server" />
      </td>
  </tr>
  <tr>
    <td colspan="2" align="center">
        <asp:Label ID="lblMessage" runat="server"></asp:Label>
      </td>
  </tr>
  <tr>
    <td colspan="2" align="center">
        <asp:Button ID="btnLogin" runat="server" Text="登录" onclick="btnLogin_Click" />
      </td>
  </tr>
</table>
    </form>
</body>
</html>

  2.效果如下图:验证码图片可以自己实现更为高级的方式做验证,也可以不使用验证,主要看业务功能需要

  3.DemoLogin.aspx.cs 后台代码如下:

  

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using QWebFramework.ExtendUtils;//常用的扩展方法

namespace QWebFrameworkDemo
{
    public partial class DemoLogin : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnLogin_Click(object sender, EventArgs e)
        {
            //获取客户端参数
            string userName = this.txtUserName.Text;
            string password = this.txtPassWord.Text;
            string imgCode = this.txtImageCode.Text;

            //1.先判断验证码是否正确,如果不要验证码可以忽略验证码判断步骤
            if (Session["qwf.demo.imageCode"].ToString().ToLower() == imgCode.ToLower())
            {
                //框架默认用户加密算法为MD5加密.
                string passWordEncrypt = password.StrToMD5();

                //关键代码:调用登录框架接口,传入的密码为加密后的字符,方便做自定义加密算法扩展
                bool isLogin = QWebFramework.Services.UserServices.GetInstance().CheckedUserLogin(userName, passWordEncrypt, true);

                if (isLogin)
                {            //登录成功则,调整到系统默认Main.aspx 页面
                    Response.Redirect("Main.aspx", true);
                }
            }
            else
            {
                this.lblMessage.Text = "验证码错误!";
            }
        }

    }
}

  最后一步,配置QWebFramework/Config/Core.config 下的配置文件,修改登录地址

  

这样一个自定义的登录界面就完成了

几点注意事项:

  1.关于密码的加密算法:系统默认的是32为MD5的小写,也可以自定义算法加密

  2.本实例的验证码页面为.ashx,并实现了 IRequiresSessionState接口,如果不排除这页面,则系统会自动拦截,因为是公共模块,不需要登录即可访问,为了规范化程序的目录结构,所以存放在Anonymous文件夹,并在系统配置文件排除了不用认证就可以访问的文件或文件夹如下图。具体的拦截方式会在后面讲解

  

时间: 2024-11-06 14:44:34

QWebFramewok使用教程之-(三)自定义带验证码的登录页面的相关文章

我的长大app开发教程第三弹:实现四个子页面绑定RadioButton

在开始之前先上一张图 在上一节中我们实现了底部Button,这一弹我们要实现点击四个按钮分别切换到不同页面,我们可以把页面分为两部分,顶部栏和中间内容部分,我们可以通过线性布局包裹两部分内容,顶部栏又是一个线性布局:一个TextView,一个ImageButton,中间内容采用帧布局. 1.项目结构: 2.四个页面的基类BasePager package com.vitoyan.myangtzeu.base; import android.content.Context; import andr

带动画的登录页面

在线演示 本地下载 原文地址:https://www.cnblogs.com/qixidi/p/10058016.html

MVC4.0 使用Form认证,自定义登录页面路径Account/Login

使用MVC4.0的时候,一般遇到会员登录.注册功能,我们都会使用Form认证,给需要身份验证的Action进行授权(需要登录后才能访问的Action添加[Authorize]属性标签),登录.注册的时候给用户添加票据信息,以便可以访问需要身份验证的Action操作或者视图 同时在web.config中我们会看到这样的配置代码,当我们修改loginUrl的值时,会发现当我们未被授权但要访问需要身份验证的视图时,依然会被强制返回Account/Login页面 <authentication mode

实现带有验证码的简易登录页面

需求: 1. 访问带有验证码的登录页面login.jsp 2. 用户输入用户名,密码以及验证码. * 如果用户名和密码输入有误,跳转登录页面,提示:用户名或密码错误 * 如果验证码输入有误,跳转登录页面,提示:验证码错误 * 如果全部输入正确,则跳转到主页success.jsp,显示:用户名,欢迎您 login.jsp页面代码: <%@ page contentType="text/html;charset=UTF-8" language="java" %&g

织梦dedecms网站给自定义表单加dede模板自带验证码的方法。

有时候,我们因为需要给dede网站的自定义表单添加验证码,防止恶意填写表单提交. 我们可以用以下的方法来实现: 首先,我们要找到 /plus/diy.php 这个文件 在头部引入文件: require_once(DEDEINC.'/membermodel.cls.php'); 然后找到 elseif($do == 2) {  在这个地方加入代码块 //验证码验证 $svali = GetCkVdValue(); if(preg_match("/1/",$safe_gdopen)){ i

Android实战简易教程-第三十九枪(第三方短信验证平台Mob和验证码自动填入功能结合实例)

用户注册或者找回密码时一般会用到短信验证功能,这里我们使用第三方的短信平台进行验证实例. 我们用到第三方短信验证平台是Mob,地址为:http://mob.com/ 一.注册用户.获取SDK 大家可以自行注册,得到APPKEY和APPSECRET,然后下载SDK,包的导入方式如截图: 二.主要代码 SMSSendForRegisterActivity.java:(获取验证码页) package com.qiandaobao.activity; import java.util.regex.Mat

Nginx系列教程(三)| 一文带你读懂 Nginx 的负载均衡

作者:JackTian 微信公众号:杰哥的IT之旅(ID:Jake_Internet) LAMP 系列导读 01. LAMP 系列教程(一)| 详解 Linux 环境下部署 HTTPD 服务 02. LAMP 系列教程(二)| 如何在 Linux 环境下部署 AWStats 分析系统来监控 Web 站点? 03. LAMP 系列教程(三)| 一文读懂 HTTPD 服务的访问控制 04. LAMP 系列教程(四)| MySQL 数据库系统(一) 05. LAMP 系列教程(五)| MySQL 数据

Quick-Cocos2d-x初学者游戏教程(三) ---------------------------- 解析quick新建项目的代码文件

Quick-Cocos2d-x初学者游戏教程(三) 2.main.lua 在src目录下,除了 config.lua 文件外,还有一个 main.lua 文件,这个 main.lua 是 Quick 项目的通用入口文件,它类似于 Cocos2d-x 中的 AppDelegate.h/cpp 文件,同时也类似于一般 Windows 工程中的 main 文件. 打开 main.lua 文件,其内容如下所示: 1 2 3 4 5 6 7 8 9 10 function __G__TRACKBACK__

Android 适配器教程(三)

前两讲中,我们分别大体的了解了适配器是什么,和它的一些基本知识. 并且分别讲解了了ArrayAdapter和SimpleCursorAdapter这两种常用的安卓原生适配器,这两种适配器都是封装好了的,他们虽然使用起来非常简单,但是可扩展性较差. 现在我们继续向下深入学习安卓的适配器,这一次我们将会一同学习SimpleAdapter simpleAdapter的扩展性最好,可以定义各种各样的布局出来,可以放上ImageView(图片),还可以放上Button(按钮),CheckBox(复选框)等