C#中通过js实现个人用户和非个人用户的登陆
前台代码:
<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实现个人用户和非个人用户的登陆的更多相关文章
- CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动
CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动1.关于mysql?MySQL是一个关系型数据库管理 ...
- zzw原创_非root用户下安装nginx
想自己安装nginx,又不相用到root用户. 非root用户下(本文为用户bdctool)来ngnix安装,要依赖pcre库.zlib库等, 1. 下载依赖包:下载地址 pcre(www.pcre. ...
- MVC学习随笔----如何在页面中添加JS和CSS文件
http://blog.csdn.net/xxjoy_777/article/details/39050011 1.如何在页面中添加Js和CSS文件. 我们只需要在模板页中添加JS和CSS文件,然后子 ...
- 在.Net中执行js
在.Net中执行js 利用Noesis.Javascript开源组件可以做到在.net中执行js脚本,同时js脚本也能调用C#函数.这个组件的获得方式:在NuGet中输入搜索"Noesis& ...
- 纯静态界面中(html)中通过js调用dll中的方法从数据库中读取数据
最近接到一个离职员工的任务,一个搭好框架的ERP系统,看了两天,说一下看到的东西,整个项目目录中我没发现一个.aspx后缀的文件,全是静态HTML文件,之后发现他用的jquery简直看的头疼,不过大概 ...
- vue-cli脚手架build目录中check-versions.js的配置
转载自:https://www.cnblogs.com/ye-hcj/p/7074363.html 本文介绍vue-cli脚手架build目录中check-versions.js的配置 本文件是用来检 ...
- legend---十二、js中的js语句和函数和ready函数的关系是什么
legend---十二.js中的js语句和函数和ready函数的关系是什么 一.总结 一句话总结: 函数和全局变量不必放到ready函数中 语句(调用函数和全局变量)的必须放到ready函数中 1.在 ...
- amazeui中的js插件有哪些(详解功能)
amazeui中的js插件有哪些(详解功能) 一.总结 一句话总结: 二.amazeui中的js插件有哪些 1.UI 增强 警告框Alert 按钮交互Button 折叠面板Collapse 下拉组件D ...
- ZK中使用JS读取客户端txt文件内容问题
最近写一个需求时遇到一个问题,用户需要通过点击一个按钮直接读取他自己电脑上D盘的一个txt文件内容显示到页面,因为项目现在是用ZK写的.我对于ZK也是刚刚了解不就,很多都还不是很熟.起初我是想用io流 ...
随机推荐
- SGC强制最低128位加密,公钥支持ECC加密算法的SSL证书
Pro SSL证书,验证企业域名所有权和企业身份信息,采用SGC(服务器门控)技术强制128位以上至256位加密,属于企业OV验证级专业版(Pro) SSL证书:即使用户使用低版本浏览器(比如浏览 ...
- 【codeforces 761E】Dasha and Puzzle
[题目链接]:http://codeforces.com/contest/761/problem/E [题意] 给你一棵树,让你在平面上选定n个坐标; 使得这棵树的连接关系以二维坐标的形式展现出来; ...
- hibernate 中映射关系配置
多对多 : 外键维护权,一方放弃inverse="true",并且不放弃维护权的一方,加入 cascade="save-update":推荐方案 Student ...
- fzu 2129
第i个元素a未出现过:dp[i] = (2 * dp[i-1] + 1) % mod; visit[a]代表a最后出现的位置 第i个元素a出现过:dp[i] = (2 * dp[i-1] - dp[v ...
- Spring MVC-表单(Form)标签-下拉框(Dropdown)示例(转载实践)
以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_dropdown.htm 说明:示例基于Spring MVC 4.1.6. 以下示 ...
- LucaCanali --DTRACE AND SYSTEMTAP 脚本工具
https://github.com/LucaCanali http://cern.ch/canali/
- GDB 调试 PHP文件
http://www.bo56.com/%E5%9C%A82016%E7%9A%84phpcon%E5%A4%A7%E4%BC%9A%E4%B8%8A%E7%9A%84%E5%88%86%E4%BA% ...
- Linux: 统计代码行数和SVN修改行数的命令
Mac下同样有效. 1. 统计目录下所有js文件的代码行数. find . -name '*.js' | xargs wc -l 2. 统计SVN的修改行数. svn diff -rBeginRev: ...
- Android自己定义Toast
一.引言 在开发的过程中你会发现Android自身的Toast提示有很多限制,比方我想自己定义Toast的动画.自己定义一个美观的View显示在Toast中.很多其它的是让Toast显示指定的时长等等 ...
- Sublime text 神器小记
曾经一直使用的都是Editplus,一直感觉都是非常不错的. 可是近期接触到sublime text,我就fall in love with it. Sublime 的意思是"顶峰,高尚,非 ...