ASP.NET MVC 5 WEB API 用户验证
参考博客:ASP.NET MVC5+EF6+EasyUI 后台管理系统(65)-MVC WebApi 用户验证 (1)
参考博客:MVC WebApi 用户验证 (2)构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(66)-MVC WebApi 用户验证 (2)
登录接口代码:
#region 登录验证 /// <summary> /// 登录验证 /// </summary> /// <param name="userName">用户名</param> /// <param name="password">密码</param> /// <returns></returns> [HttpGet] [AllowAnonymous] public common.HttpResult verification(string userName, string password) { common.HttpResult result = new common.HttpResult(); //string pwd = utils.MD5Helper.ConvertMD5(password); models.sys_user login = bll.sysUserManager.GetExistUser(userName, password); if (login != null) { FormsAuthenticationTicket token = , userName, DateTime.Now, DateTime.Now.AddHours(), true, string.Format("{0}&{1}", userName, password), FormsAuthentication.FormsCookiePath); //返回登录结果、用户信息、用户验证票据信息 var Token = FormsAuthentication.Encrypt(token); //将身份信息保存在session中,验证当前请求是否是有效请求 HttpContext.Current.Session[userName] = Token; result.state = common.ResultType.success.ToString(); //result.message = lang.message.LOGINSUCCESS; result.message = Token; result.data = login; common.LogHelper.Info(this.GetType().FullName, "verification", login.userID + " " + lang.message.LOGINSUCCESS); } else { result.state = common.ResultType.error.ToString(); result.message = lang.message.LOGINFAIL; } return result; } #endregion
由于WEB API默认不支持SESSION,需要在Global.asax.cs中添加SESSION支持
public override void Init() { //手动在 Global 开启 session 支持 this.AuthenticateRequest += MvcApplication_AuthenticateRequest; base.Init(); } void MvcApplication_AuthenticateRequest(object sender, EventArgs e) { //启用 webapi 支持session 会话 HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required); }
js访问代码:
$.ajax({ url: "api/sysUser", data: { userName: $.trim($username.val()), password: $.md5($.trim($password.val())) }, type: "get", dataType: "json", success: function (data) { if (data.state == "success") { $("#login").find('span').html("登录成功,正在跳转..."); alert("登录成功:Token" + data.message); window.setTimeout(function () { window.location.href = "/main/index"; }, 500); } else { $("#login").find('span').html("登录"); $.login.message(data.message); } } });
ASP.NET MVC 5 WEB API 用户验证的更多相关文章
- ASP.NET MVC和Web API中的Angular2 - 第2部分
下载源码 内容 第1部分:Visual Studio 2017中的Angular2设置,基本CRUD应用程序,第三方模态弹出控件 第2部分:使用Angular2管道进行过滤/搜索,全局错误处理,调试客 ...
- ABP示例程序-使用AngularJs,ASP.NET MVC,Web API和EntityFramework创建N层的单页面Web应用
本片文章翻译自ABP在CodeProject上的一个简单示例程序,网站上的程序是用ABP之前的版本创建的,模板创建界面及工程文档有所改变,本文基于最新的模板创建.通过这个简单的示例可以对ABP有个更深 ...
- vs 2013下自定义ASP.net MVC 5/Web API 2 模板(T4 视图模板/控制器模板)
vs 2013下自定义ASP.net MVC 5/Web API 2 模板(T4 视图模板/控制器模板): Customizing ASP.NET MVC 5/Web API 2 Scaffoldi ...
- ASP.NET MVC+Knockout+Web API+SignalR
架构设计(ASP.NET MVC+Knockout+Web API+SignalR) 架构设计(ASP.NET MVC+Knockout+Web API+SignalR) 2014-01-16 18: ...
- Visual Studio 2013 Preview - ASP.NET, MVC 5, Web API 2新功能搶先看
Visual Studio 2013 Preview - ASP.NET, MVC 5, Web API 2新功能搶先看 來自TechEd North America 2013的第一手消息 以下資訊均 ...
- [Asp.Net] MVC 和Web API Action 获取参数的区别
Asp.net MVC 和web api 的action 在获取从前台传入的数据是有很大不同 前台使用ajax的方式向后台发起post的请求 Content-Type:application/json ...
- Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案(转)
前言 刚开始创建MVC与Web API的混合项目时,碰到好多问题,今天拿出来跟大家一起分享下.有朋友私信我问项目的分层及文件夹结构在我的第一篇博客中没说清楚,那么接下来我就准备从这些文件怎么分文件 ...
- Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案
前言 刚开始创建MVC与Web API的混合项目时,碰到好多问题,今天拿出来跟大家一起分享下.有朋友私信我问项目的分层及文件夹结构在我的第一篇博客中没说清楚,那么接下来我就准备从这些文件怎么分文件夹说 ...
- 转-Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案
前言 刚开始创建MVC与Web API的混合项目时,碰到好多问题,今天拿出来跟大家一起分享下.有朋友私信我问项目的分层及文件夹结构在我的第一篇博客中没说清楚,那么接下来我就准备从这些文件怎么分文件夹说 ...
随机推荐
- unable to connect to :5555
有可能批处理文件用的adb和eclipse的adb不兼容.把你的批处理文件用的adb换成eclipse的adb就可以了: 运行结果:
- 使用 Eclipse Memory Analyzer 进行简单内存泄漏分析
Java 内存泄露的根本原因: 保存了不可能再被访问的变量类型的引用.因此我们的目的就是要找出这样的引用. 1.测试代码: public class MainActivity extends Acti ...
- WebForm(aspx,cs,dll之间的关系)
WebForm分为两个文件aspx和aspx.cs,aspx是页面模板,是页面描述文件,就是html的内容,和aspx结合的更好,不用像一开始那样程序员自己去填充模板,控件都是定义在aspx中,内联的 ...
- HDU 5965 三维dp 或 递推
题意:= =中文题 思路一:比赛时队友想的...然后我赛后想了一下想了个2维dp,但是在转移的时候,貌似出了点小问题...吧?然后就按照队友的思路又写了一遍. 定义dp[i][j][k],表示第i列, ...
- fatal error: gst/gst.h
ln命令使用 ln -s 源文件(src) 目标文件(dest) 进到这个文件:~/LowDA/sysroots/mx6q/usr/include$ ln -s gstreamer-0.10/gs ...
- UIScreen的scale属性
用来表示显示屏的像素密度与点坐标系统之间的关系.通过该属性,我们可以把视图中逻辑坐标系统里的点坐标转换成设备的物理像素坐标.在配有Retina显示屏的设备中,scale值是2.0,而在非Retina显 ...
- linux的学习系列 1---简介
Linux简介 严格的来讲,Linux 不算是一个操作系统,只是一个 Linux 系统中的内核,即计算机软件与硬件通讯之间的平台:Linux的全称是GNU/Linux,这才算是一个真正意义上的Linu ...
- php Memcached
PHP 连接 Memcached 服务 在前面章节中我们已经介绍了如何安装 Memcached 服务,接下来我们为大家介绍 PHP 如何使用 Memcached 服务. PHP Memcache 扩展 ...
- java 线程的同步
Example12_7.java public class Example12_7 { public static void main(String args[]) { Bank bank = new ...
- Disassembly1:HelloWorld
我这里学习汇编语言的思路就是逆向C++源码. 先从最简单的一个程序入手: