zoukankan      html  css  js  c++  java
  • webQQ(腾讯)AccountQQ多账号登录数据库设计

    专题图ylbtech-asp.net编号:ylbtechASPNET

    1,功能描述

     ver1.0 QQ多账号登录。两种账号形式,1,数字;2,邮箱。

    2,技术与环境
    3,数据库设计
    3.1  /App_Data/basic-sql.sql
    -- =============================================
    -- 多账号登录
    -- author:YUANBO
    -- development time:2011-9-20
    -- =============================================
    USE master
    GO
    -- Drop the database if it already exists
    IF  EXISTS (
        SELECT name
            FROM sys.databases 
            WHERE name = N'Duo'
    )
    DROP DATABASE Duo
    GO
    CREATE DATABASE Duo
    GO
    use Duo
    go
    -- =============================================
    -- 用户
    -- =============================================
    create table Users
    (
    UserID int identity(2000,1) primary key,    --编号
    Email varchar(200), --邮箱
    Username varchar(20) not null,          --昵称
    Userpass varchar(20) not null   --密码
    )
    go
    select UserID,Email,Username,Userpass from Users;

    3.2  /App_Data/Select/1, Users.sql

    Use Duo
    go
    -- =============================================
    -- 多用户表的操作
    -- =============================================
    go
    --注册
    ----a)QQ号码
    insert Users(Username,Userpass) values('ylb','123');
    select @@IDENTITY;
    go
    ----b)Email帐号
            --先判断该Email帐号,是否被注册
    select COUNT(*) from Users where Email='ylb@qq.com';
            ----1)有,则提示:该帐号已存在,请换其他帐号
            ----2)无,则进行注册
    insert Users(Email,Username,Userpass) values('ylb@qq.com','yb','123');
    select @@IDENTITY;
    
    go
    
    --登录
    ---P:如何去判断用户输入的帐号是QQ号码或者是Email帐号
    ---A:第一方法,int.TryParse 尝试这去强转为整型
    ---A:第二种方法,看账号中是否存在'.'或者'@'
    go
    --QQ号码
    select COUNT(*) from Users where UserID='2000' and Userpass='123';
    go
    --Email帐号
    select COUNT(*) from Users where Email='ylb@qq.com' and Userpass='123';
    --select * from Users;
    4,功能截图
    4.1,

    4.2,

    4.3,

    4.4,

     
    5,代码分析

     解决方案属性图

     5.1  /Signin.aspx.cs

    using System;
    
    public partial class Signin : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            //登录
            int userID;
            if (int.TryParse(txtID.Text, out userID))
            {
                //QQ号码登录
                if (UsersOper.ExistsUserQQ(userID, txtUserpass.Text))
                {
                    lblState.Text = "登陆成功!";
                }
                else
                {
                    lblState.Text = "用户名或密码有误!";
                }
            }
            else
            {
                //Email帐号登录
                if (UsersOper.ExistsUserEmail(txtID.Text, txtUserpass.Text))
                {
                    lblState.Text = "登陆成功!";
                }
                else
                {
                    lblState.Text = "用户名或密码有误!";
                }
            }
        }
    }
    6,示例|讲解案例下载

    博客园讲解:  http://ylbtech.cnblogs.com/

    百度文库开发文档: http://passport.baidu.com/?business&aid=6&un=ylbtech#7

    谷歌开源代码下载: http://code.google.com/p/ylbtechopensource/downloads/list

    请单击“ver1.0 QQ多账号登录”

    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

     

    最终目标

     代码的国际化标准示例 ylb,tech”,最大程度地规范软件编程开发统一,优质, 高效,易学,为建设软件强国(中国)而努力。

  • 相关阅读:
    一天摄入多少蛋白质比较合理?
    给函数添加元数据(python)
    反转链表(C++实现)
    删除链表的中间节点(C++实现)
    在双向链表中删除倒数第K个链表节点(C++实现)
    在单链表中删除倒数第K个节点(C++实现)
    二叉树的创建及遍历(递归和非递归C++实现)
    删除排序数组中的重复项(C++实现)
    打印两个有序链表的公共部分(C++实现)
    用一个栈实现另一个栈的排序(C++实现)
  • 原文地址:https://www.cnblogs.com/ylbtech/p/2673834.html
Copyright © 2011-2022 走看看