书上的验证时在配置文件中直接声明用户名和密码,想改成从数据验证账号和密码,搞了一下午都没高出来,不断的调试,发现

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学习笔记(二)登陆验证的更多相关文章

  1. ASP.NET MVC 学习笔记-2.Razor语法 ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础 反射的具体应用 策略模式的具体应用 责任链模式的具体应用 ServiceStack.Redis订阅发布服务的调用 C#读取XML文件的基类实现

    ASP.NET MVC 学习笔记-2.Razor语法   1.         表达式 表达式必须跟在“@”符号之后, 2.         代码块 代码块必须位于“@{}”中,并且每行代码必须以“: ...

  2. ASP.NET MVC学习笔记-----Filter2

    ASP.NET MVC学习笔记-----Filter(2) 接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用 ...

  3. ASP.NET MVC学习笔记-----Filter

    ASP.NET MVC学习笔记-----Filter(1) Filter类型 接口 MVC的默认实现 Description Authorization IAuthorizationFilter Au ...

  4. [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参

    [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参 本文转自:http://www.cnblogs.com/babycool/p/3922738.html ASP.NET MVC学习系 ...

  5. ASP.NET MVC学习笔记-----Filter(2)

    接上篇ASP.NET MVC学习笔记-----Filter(1) Action Filter Action Filter可以基于任何目的使用,它需要实现IActionFilter接口: public ...

  6. 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 ...

  7. ASP.NET MVC学习系列(二)-WebAPI请求

    继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现 ...

  8. ASP.NET MVC学习系列(二)-WebAPI请求(转)

    转自:http://www.cnblogs.com/babycool/p/3922738.html 继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的g ...

  9. ASP.NET MVC学习系列(二)-WebAPI请求 转载https://www.cnblogs.com/babycool/p/3922738.html

    继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现 ...

  10. ASP.NET MVC学习笔记(二)笔记

    接下来我们一起了解ASP.NET MVC的最重要的核心技术,了解ASP.NET MVC的开发框架,生命周期,技术细节. 一.Routing与ASP.NET MVC生命周期 1.Routing——网址路 ...

随机推荐

  1. bom知识点

    1.BOM输出 所谓BOM指的是浏览器对象模型 Browser Object Model,它的核心就是浏览器 alert(1);//弹出框 调式使用 console.log('路飞学城');//用于浏 ...

  2. Mongodb 集群加keyFile认证

    介绍 自从远古计绳结开始,数据库的存储就注定了今天的地位和多样性,Nosql的出现更是解决了现有的关系型数据库无法解决的一些难题,对高性能,灵活度,扩展性,海量数据的问题.随之而出现的高速内存索引数据 ...

  3. python爬虫----基本操作

    一.爬虫基本操作 有些网站和其他网站是有关系(链接),全球的网站就相当于一个蜘蛛网,我们放一只蜘蛛在上面爬,一定能够把网爬个遍.那么如果我们要爬取互联网上内容我们就相当于放一只蜘蛛在上面. 爬虫分为 ...

  4. 关于微信小程序的一些看法和理解

    最近做了几个小时的调研,微信小程序 微信小程序是可以理解成在微信中的APP,他的目标是APP的替代者,由于目前的APP主要区分安卓和IOS,或者其他平台, 那么微信小程序的平台在微信,在任何一个手机系 ...

  5. Spring Boot下Druid连接池的使用配置分析

    https://blog.csdn.net/blueheart20/article/details/52384032

  6. 迷你MVVM框架 avalonjs 学习教程9、类名操作

    ms-class是avalon用得最多的几个绑定之一,也正因为如此其功能一直在扩充中.根据时期的不同,分为旧风格与新风格两种. 旧风格是指ms-class-xxx=”expr”,*ms-class-a ...

  7. js练习 原型

    //var a = {        //    fun: function a() {        //        test = 0;        //        alert(this) ...

  8. Multithread之为什么spinlock必须是volatile?

    [Multithread之为什么spinlock必须是volatile?] 1.编译器的优化 在本次线程内,当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中:以后再取变量 ...

  9. 在Linux下删除文件及文件夹(rm)

    删除目录.文件 rm(remove) 功能说明:删除文件或目录.语 法:rm [-dfirv][--help][--version][文件或目录...]补充说明:执行rm指令可删除文件或目录,如欲删除 ...

  10. mongodb查询速度慢是什么原因?

    mongodb查询速度慢是什么原因? 通过mongodb客户端samus代码研究解决问题         最近有项目需要用到mongodb,于是在网上下载了mongodb的源码,根据示例写了测试代码, ...