ASP.NET MVC学习笔记(二)登陆验证
书上的验证时在配置文件中直接声明用户名和密码,想改成从数据验证账号和密码,搞了一下午都没高出来,不断的调试,发现
var table = userInfo.Tables.FirstOrDefault(x => x.Name == user.Name);
这句代码有问题,一直时Null,各种百度无法解决,就把它转成userInfo.Tables.AsQueryable();了。完美解决了
控制器代码
public class AccountController : Controller
{
IAuthProvider authProvider;
ITaableInfo userInfo;
public AccountController(IAuthProvider autho,ITaableInfo info)
{
authProvider = autho;
//获得用户数据
userInfo = info;
//EFDbcontext context = new EFDbcontext();
//context.SaveChanges();
}
public ViewResult Login2()
{
return View();
}
//[HttpPost]
//public ActionResult Login(LoginViewModel model, string returnUrl)
//{
// if (ModelState.IsValid)
// { // if (authProvider.Authenticate(model.Name, model.PassWord))
// {
// return Redirect(returnUrl ?? Url.Action("Index", "Admin"));
// }
// else
// {
// ModelState.AddModelError("", "Incorrect userName,passWord");
// return View();
// } // }
// else
// {
// return View();
// }
//}
[HttpPost]
public ActionResult Login2(Admin user, string returnUrl)
{ //foreach (var B in userInfo.Tables)
//{
// string str = B.Name;
//}
string name = user.Name;
string pwd = user.PassWord;
//var table = userInfo.Tables.FirstOrDefault(x => x.Name == user.Name);
var table = userInfo.Tables.AsQueryable();
var info= table.FirstOrDefault(x => x.Name == user.Name);
if (info != null)
{
//string url= Url.Action("Index", "Admin").ToString();
FormsAuthentication.SetAuthCookie(info.Name, false);
//重新定向到Admin/Index页面
return Redirect(returnUrl??Url.Action("Index","Admin"));
}
else
{
return View();
}
}
}
html代码
@model SpotrsStore.Domain.Entities.Admin
@{
ViewBag.Title = "Login2";
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
<div class="panel">
<div class="panel-heading">
<h3>log in</h3>
</div>
<div class="panel-body">
<p class="lead">please log in access the administrator area</p>
@using (Html.BeginForm())
{
Html.ValidationSummary();
<div class="form-group">
<label>username</label>
@Html.TextBoxFor(x => x.Name, new { @class = "form-control" })
</div>
<div class="form-group">
<label>password</label>
@Html.PasswordFor(x => x.PassWord, new { @class = "form-control" })
</div>
<input type="submit" value="log in" class="btn btn-primary" />
}
</div>
</div>
配置文件代码
<authentication mode="Forms">
<forms loginUrl="~/Account/Login2"></forms>
</authentication>
重新的定向的的页面的控制器要加 [Authorize]//授权属性,加在类名上面或动作方法上面视情况所选择
ASP.NET MVC学习笔记(二)登陆验证的更多相关文章
- ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现
ASP.NET MVC 学习笔记-2.Razor语法 1. 表达式 表达式必须跟在“@”符号之后, 2. 代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...
- ASP.NET MVC学习笔记-----Filter2
ASP.NET MVC学习笔记-----Filter(2) 接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用 ...
- ASP.NET MVC学习笔记-----Filter
ASP.NET MVC学习笔记-----Filter(1) Filter类型 接口 MVC的默认实现 Description Authorization IAuthorizationFilter Au ...
- [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参
[转]ASP.NET MVC学习系列(二)-WebAPI请求 传参 本文转自:http://www.cnblogs.com/babycool/p/3922738.html ASP.NET MVC学习系 ...
- ASP.NET MVC学习笔记-----Filter(2)
接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用,它需要实现IActionFilter接口: public ...
- ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则
ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...
- ASP.NET MVC学习系列(二)-WebAPI请求
继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现 ...
- ASP.NET MVC学习系列(二)-WebAPI请求(转)
转自:http://www.cnblogs.com/babycool/p/3922738.html 继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的g ...
- ASP.NET MVC学习系列(二)-WebAPI请求 转载https://www.cnblogs.com/babycool/p/3922738.html
继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现 ...
- ASP.NET MVC学习笔记(二)笔记
接下来我们一起了解ASP.NET MVC的最重要的核心技术,了解ASP.NET MVC的开发框架,生命周期,技术细节. 一.Routing与ASP.NET MVC生命周期 1.Routing——网址路 ...
随机推荐
- python报头解决粘包简单实现
client------------- #!/usr/bin/env python # encoding: utf-8 # Date: 2018/6/5 import socketimport st ...
- ubantu的下载和在虚拟机VM中的安装
一.下载Ubuntu镜像文件 下载地址:http://www.ubuntu.com 打开上面的连接,我们来到如下页面,点击download: 下一步,到如下页面,点击Ubuntu Desktop: 然 ...
- Redis Windows环境安装
1.下载Windows 版本 Redis: https://github.com/ServiceStack/redis-windows 2. 解压文件: F:\开源代码学习\01_Redis 打开 目 ...
- 在C#里面获得应用程序的当前路径
Environment.CurrentDirectory——获取应用程序的当前工作目录.System.IO.Directory.GetCurrentDirectory()AppDomain.Curre ...
- SAFEARRAY
SAFEARRAY SafeArrayCreate SafeArrayDestroy // Specify the bounds: // -- dim. count = 2 // -- elemen ...
- Variation Model的应用
Variation Model的主要原理是将待检测的图像与一张标准图像作比较,找出待检测图像与标准图像(ideal image)的明显差异(也就是不良). 标准图像可以采用几张OK品的图像训练(tra ...
- LPCTSTR和LPTSTR和char *究竟有什么区别
LPSTR = char* LPCSTR = const char* LPTSTR: 如果定义了UNICODE宏,那么LPTSTR = wchar_t*否则LPTSTR = char* LPCTSTR ...
- javascript数组操作(创建、元素删除、数组的拷贝)
这篇文章主要介绍了javascript数组操作,包括创建.元素的访问.元素删除.数组的拷贝等操作,还有其它示例,需要的朋友可以参考下 1.数组的创建 复制代码 代码如下: var arrayObj = ...
- docker国内registry
cat /etc/docker/daemon.json {"registry-mirrors": ["http://4d6b2eb7.m.daocloud.io" ...
- OGNL特殊符号的使用
---------------------siwuxie095 # 的使用 1.使用 # 获取 context 中的数据 「值栈分为 root 和 context 两部分」 2.如:向 Request ...