实现用户的登录功能,这里举一个个人和非个人用户的登录的例子

前台代码:

<ul class="login_list clearfix">
<li>
<input class="input_one" type="text" id="txtusername" placeholder="请输入帐号"> </li>
<li>
<input class="input_two" type="password" id="txtuserpwd" placeholder="请输入密码"> </li>
<li class="forget">
<input type="checkbox">
<span> 记住用户名</span >
</li>
<li class="dis">
<input class="check" placeholder="验证码" type="text" />
<img src="" />
</li>
<li class="lastt">< a class ="fr" href ="/about/zhmm.html" target ="_blank">忘记密码?</a ><span> 没有帐号?</span ><a class="zc" href="/reg.html" target="_blank"> 注册</a ></li>
<li class="msg">< em id ="msg"></em></ li>
<li class="dr">< a href ="javascript:void(0);" onclick ="userlogin();" class="un"> 登录</a ></li>
</ul>

  引用JS文件lo_re.js(判断为不为空,为空的话提示消息):

function userlogin()
{
var UserName=$("#txtusername" );
if($.trim(UserName.val())==""){
UserName.focus();
$( "#msg").html(" 帐号不能为空! ");
return;
} else{
$( "#msg").html("" );
}
var UserPwd=$("#txtuserpwd" );
if($.trim(UserPwd.val())=="" ){
UserPwd.focus();
$( "#msg").html(" 密码不能为空! ");
return;
} else{
$( "#msg").html("" );
}
$.post( "/JsData/userlogin.ashx" , { action: "login", username: UserName.val(),userpwd:UserPwd.val(), time: new Date().getTime() }, function(msg) {
var data = eval("(" + msg + ")");
var state=parseInt(data[0].state);
if(state==1){
if(data[0].UserType=="0" ){ //非个人用户
$.cookie( "UserType", "0" , { path: "/" });
$.cookie( "UserName", data[0].UserName, { path: "/" }); } else{// 个人用户
alert("恭喜您,登陆成功"); //登陆完成之后,会弹出此消息框提示(要在判断用户名、密码是否正确之后才能弹出此消息框)
$.cookie( "UserType", "1" , { path: "/" });
$.cookie( "UserID", data[0].id, { path: "/" });
}
location.href= "/"; } else{
$( "#msg").html(" 账号或密码错误! ");
}
});
}

  /JsData/userlogin.ashx的文件中(这是一个判断的过程,确认传过来的值是登陆还是别的,如果是登陆的话,验证用户名和密码并返回数据):

usersDAL ud = new usersDAL ();
protected string action = CRequest.GetString( "action");
schoolsDAL sd = new schoolsDAL();
schoolsModel sm = new schoolsModel();
protected int cookie = CRequest.GetInt( "cookie",1);
protected string username = CRequest.GetString( "username");
public void ProcessRequest(HttpContext context)
{ if (action == "login" )
{
if (username.IndexOf("@" ) != -1)
{
login(context);
}
else
{
wxlogin(context);
}
}
else if (action == "chklogin")
{
chklogin(context);
}
else if (action == "logout")
{
logout(context);
}
else if (action == "autologin")
{
autologin(context);
} }
/// <summary>
/// 获取用户登陆状态
/// </summary>
private void chklogin(HttpContext context)
{
StringBuilder sb = new StringBuilder();
if (DoUser .GetUserType() != "")
{
if (DoUser .GetUserType() == "1")
{
sb.Append( "[" + GetUserInfo(int .Parse(DoUser.GetUserID())) + "]");
}
else if (DoUser.GetUserType() == "0")
{
string userid = schoolsDAL .GetUserId(DoUser.GetUserName());
sb.Append( "[" + GetWxinfo(int .Parse(userid)) + "]");
}
else
{
sb.Append( "[{\"state\":\"0\"}]" );
}
}
else
{
sb.Append( "[{\"state\":\"0\"}]" );
}
context.Response.Write(sb.ToString());
context.Response.End();
}
private void logout(HttpContext context)
{
DoClass.RemoveUserCookie();
DoSession.DelALL();
context.Response.Write( "ok");
}
private void login(HttpContext context)
{
StringBuilder sb = new StringBuilder();
string username = CRequest .GetString("username");
string userpwd = CRequest .GetString("userpwd");
int UserID=ud.ChkLogin(username, encrypt.EncryptMd5(userpwd));
if (UserID > 0)
{
DoUser.SetUserType("1" );//cookie 用户状态 1为个人 0 为非个人
DoUser.SetUserID(UserID.ToString());
sb.Append( "{\"state\":\"1\",\"UserType\":\"1\",\"id\":\"" + UserID + "\",\"UserName\":\"" + username + "\"}");
}
else
{
sb.Append( "{\"state\":\"0\"}" );
}
context.Response.Write( "[" + sb.ToString() + "]" );
context.Response.End();
}
private void wxlogin(HttpContext context)
{
StringBuilder sb = new StringBuilder();
string username = CRequest .GetString("username");
//string userid = schoolsDAL.GetUserId(username);
string userpwd = CRequest .GetString("userpwd");
int UserID=sd.ChkLogin(username, encrypt.EncryptMd5(userpwd));
if (UserID > 0)
{
DoUser.SetUserType("0" );//cookie 用户状态 1 为个人 0 为非个人
DoUser.SetUserName(username);
sb.Append(GetWxinfo(UserID)); }
else
{
sb.Append( "{\"state\":\"0\"}" );
}
context.Response.Write( "[" + sb.ToString() + "]" );
context.Response.End();
}
private void autologin(HttpContext context)
{
string username = sd.AutoLogin();
if (username != "" )
{ DoUser.SetUserType("0" );//cookie 用户状态 1 为个人 0 为非个人
DoUser.SetUserName(username);
int userid = Convert .ToInt32(schoolsDAL.GetUserId(username));
context.Response.Write(GetWxinfo(userid));
}
}
private string GetUserInfo(int userid)
{
string username = usersDAL .GetUserName(userid);
StringBuilder sb = new StringBuilder();
sb.Append( "{\"state\":\"1\",\"UserType\":\"1\",\"id\":\"" + userid + "\",\"UserName\":\"" + username + "\"}");
return sb.ToString();
}
private string GetWxinfo(int userid)
{
StringBuilder sb = new StringBuilder();
sm = sd.GetModel(userid);
if (sm != null )
{
string tel = peopleDAL .GetAdminTel(sm.adduser.ToString()); sb.Append( "{\"state\":\"1\",\"UserType\":\"0\",\"id\":\"" + userid + "\",\"UserName\":\"" + username + "\",\"SchoolName\":\"" +sm.schoolname+"\",\"SchoolType\":\""+sm.is_off+"\",\"Tel\":\"" +tel+"\"}"); }
return sb.ToString();
}
public bool IsReusable
{
get
{
return false ;
}
}

  这就是用户的登陆,希望对你有帮助!

C#中通过js实现个人用户和非个人用户的登陆的更多相关文章

  1. CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动

    CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动1.关于mysql?MySQL是一个关系型数据库管理 ...

  2. zzw原创_非root用户下安装nginx

    想自己安装nginx,又不相用到root用户. 非root用户下(本文为用户bdctool)来ngnix安装,要依赖pcre库.zlib库等, 1. 下载依赖包:下载地址 pcre(www.pcre. ...

  3. MVC学习随笔----如何在页面中添加JS和CSS文件

    http://blog.csdn.net/xxjoy_777/article/details/39050011 1.如何在页面中添加Js和CSS文件. 我们只需要在模板页中添加JS和CSS文件,然后子 ...

  4. 在.Net中执行js

    在.Net中执行js 利用Noesis.Javascript开源组件可以做到在.net中执行js脚本,同时js脚本也能调用C#函数.这个组件的获得方式:在NuGet中输入搜索"Noesis& ...

  5. 纯静态界面中(html)中通过js调用dll中的方法从数据库中读取数据

    最近接到一个离职员工的任务,一个搭好框架的ERP系统,看了两天,说一下看到的东西,整个项目目录中我没发现一个.aspx后缀的文件,全是静态HTML文件,之后发现他用的jquery简直看的头疼,不过大概 ...

  6. vue-cli脚手架build目录中check-versions.js的配置

    转载自:https://www.cnblogs.com/ye-hcj/p/7074363.html 本文介绍vue-cli脚手架build目录中check-versions.js的配置 本文件是用来检 ...

  7. legend---十二、js中的js语句和函数和ready函数的关系是什么

    legend---十二.js中的js语句和函数和ready函数的关系是什么 一.总结 一句话总结: 函数和全局变量不必放到ready函数中 语句(调用函数和全局变量)的必须放到ready函数中 1.在 ...

  8. amazeui中的js插件有哪些(详解功能)

    amazeui中的js插件有哪些(详解功能) 一.总结 一句话总结: 二.amazeui中的js插件有哪些 1.UI 增强 警告框Alert 按钮交互Button 折叠面板Collapse 下拉组件D ...

  9. ZK中使用JS读取客户端txt文件内容问题

    最近写一个需求时遇到一个问题,用户需要通过点击一个按钮直接读取他自己电脑上D盘的一个txt文件内容显示到页面,因为项目现在是用ZK写的.我对于ZK也是刚刚了解不就,很多都还不是很熟.起初我是想用io流 ...

随机推荐

  1. js里的深度克隆

    ES6 数组克隆 let arr = [1,2,3,4,5]; let arr1 = [...a]; arr1 = ["a","b","c" ...

  2. Sort HDU5884(二分+多叉哈夫曼树)

    HDU5884 Sort 题意:有n个序列要进行归并,每次归并的代价是两个序列的长度的和,要求最终的代价不能超过规定的T,求在此前提下一次能同时进行归并的序列的个数k. 思路:还是太单纯,看完题目一直 ...

  3. 【3】数据筛选2 - requests

    目录     1.概述     2.下载安装     3.入门程序     4.请求对象:请求方式     5.请求对象:GET参数传递     6.请求对象:POST参数传递     7.请求对象: ...

  4. 第十节:numpy之数组文件操作

    1.安装ipython 2.创建txt文件 3.直接上代码:

  5. PAT 1094. The Largest Generation (层级遍历)

    A family hierarchy is usually presented by a pedigree tree where all the nodes on the same level bel ...

  6. ActiveMQ学习总结(5)——Java消息服务JMS详解

    JMS: Java消息服务(Java Message Service) JMS是用于访问企业消息系统的开发商中立的API.企业消息系统可以协助应用软件通过网络进行消息交互. JMS的编程过程很简单,概 ...

  7. 网页title上面添加图片

    1.效果:

  8. mysql子查询案例

    源SQL如下: 创建数据表 CREATE TABLE IF NOT EXISTS tdb_goods(     goods_id SMALLINT UNSIGNED PRIMARY KEY AUTO_ ...

  9. sqlServer杂计

    In与Exists的区别 这两个函数是差不多的,但由于优化方案不同,通常NOT Exists要比NOT IN要快,因为NOT EXISTS可以使用结合算法二NOT IN就不行了,而EXISTS则不如I ...

  10. 一个简单RPC框架是怎样炼成的(I)——开局篇

    开场白,这是一个关于RPC的相关概念的普及篇系列,主要是通过一步步的调整,提炼出一个相对完整的RPC框架. RPC(Remote Procedure Call Protocol)--远程过程调用协议, ...