1.控制器上面用 [Authorize] 属性标识,表示当前控制器内的所有函数需要用户认证才能访问

2.函数上面用 [AllowAnonymous] 属性标识,表示当前函数不需要用户认证可以直接访问

3.函数上面使用 [NonAction] 属性标识,表示此方法不作为控制器函数

代码:

1.HomeController

namespace TestMVC.Controllers
{
[Authorize]
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
return View();
}
[AllowAnonymous]
public ActionResult Login()
{
return View();
}
[AllowAnonymous]
[HttpPost]
public ActionResult DoLogin(UserDetail user)
{
if (IsValidUser(user))
{
//注册账户
FormsAuthentication.SetAuthCookie(user.UserName, false);
return RedirectToAction("Index", "Home");
}
else {
//错误消息提示
ModelState.AddModelError("ErrorMessage", "用户名或密码错误!");
return View("Login");
}
}
[NonAction]
public bool IsValidUser(UserDetail user)
{
if (user.UserName == "admin" && user.Password == "admin")
return true;
else
return false;
}
}
}

2.Home/Index.cshtml

@{
Layout = null; } <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
<h1>首页</h1>
</div> </body>
</html>

3.Home/Login.cshtml

@model TestMVC.Models.UserDetail
@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Login</title>
</head>
<body>
<div>
@Html.ValidationMessage("ErrorMessage", new { style = "color:red;" })
@using(Html.BeginForm("DoLogin","Home",FormMethod.Post)){
@Html.LabelFor(u=>u.UserName)
@Html.TextBoxFor(u=>u.UserName)
<br />
@Html.LabelFor(u => u.Password)
@Html.TextBoxFor(u => u.Password)
<br />
<input type="submit" value="登录" />
}
</div>
</body>
</html>

4.Web.config配置,当验证登录没有通过时跳转的Home/Login页面

MVC简单用户登录授权认证的更多相关文章

  1. Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录

    1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...

  2. python入门:模拟简单用户登录(自写)

    #!/usr/bin/env python # -*- coding: utf-8 -*- #模拟简单用户登录(自写) import getpass a = raw_input("Pleas ...

  3. ASP.NET 拼多多用户登录授权后使用code去换取access_token

    一.拼多多开放平台 由于本人刚毕业进公司实习 遇到一些问题然后想通过博客来记录和分享给大家一起学习. 第一次写博客没什么经验不是写的很好 请大家多多关照 嘴下留情哈哈 谢谢! 好了 话不多说直接进入主 ...

  4. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-12基于cookie登录授权认证并实现前台会员、后台管理员同时登录

    1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...

  5. Spring Boot使用Shiro实现登录授权认证

    1.Shiro是Apache下的一个开源项目,我们称之为Apache Shiro.它是一个很易用与Java项目的的安全框架,提供了认证.授权.加密.会话管理,与spring Security 一样都是 ...

  6. 基于Servlet的MVC模式用户登录实例

    关于MVC模式的简单解释 M Model,模型层,例如登录实例中,用于处理登录操作的类: V View,视图层,用于展示以及与用户交互.使用html.js.css.jsp.jQuery等前端技术实现: ...

  7. MVC下用户登录状态校验的问题以及解决方案--------------Action全局过滤器的使用

    前言当我们访问某个网站的时候需要检测用户是否已经登录(通过Session是否为null),我们知道在WebForm中可以定义一个BasePage类让他继承System.Web.UI.Page,重写它的 ...

  8. Spring Security和JWT实现登录授权认证

     目标 1.Token鉴权 2.Restful API 3.Spring Security+JWT 开始 自行新建Spring Boot工程 引入相关依赖 <dependency> < ...

  9. Servlet——简单用户登录实例+http协议解析

    编写项目.用户登录系统1.0版本号 登录界面Servlet: package com.gavin.view; import java.io.IOException; import java.io.Pr ...

随机推荐

  1. git 入门教程之分支策略

    默认情况下合并分支常常直接使用 git merge 命令,是最方便快速的合并方法.其实这种情况下 git 采用的是 fast forward 模式,特点是删除分支后,会丢失分支信息,好像从来没存在该分 ...

  2. Android 7.0 fiddler代理抓不到https请求的解决办法

    解决方法:  1.在源码res目录下新建xml目录,增加network_security_config.xml文件 (工程名/app/src/main/res/xml/network_security ...

  3. [20181220]使用提示OR_EXPAND优化.txt

    [20181220]使用提示OR_EXPAND优化.txt --//链接http://www.itpub.net/thread-2107240-2-1.html,http://www.itpub.ne ...

  4. aliyun mysql

    https://segmentfault.com/q/1010000009603559?sort=created

  5. UVA12265-Selling Land(细节处理)

    Problem UVA12265-Selling Land Accept: 309  Submit: 3231Time Limit: 3000 mSec Problem Description Inp ...

  6. UVA12113-Overlapping Squares(二进制枚举)

    Problem UVA12113-Overlapping Squares Accept:116  Submit:596 Time Limit: 3000 mSec  Problem Descripti ...

  7. pip freeze 打包依赖库及setup.py

    需要打包的工程目录下使用命令: pip freeze > requirements.txt 就会在pip目录生成 requirements.txt 文件,该文件内就是当前环境所安装的所有扩展包打 ...

  8. 转://工作中 Oracle 常用数据字典集锦

    DBA工作中数据字典就等同于我们本和笔,时时刻刻也分不开的,不管是看状态,还是监控,都需要数据字典的支持,本文整理出来常用的数据字典系列,帮助大家来记住和汇总以便查询利用 ALL_CATALOG Al ...

  9. mysql创建索引的原则

    在mysql中使用索引的原则有以下几点: 1. 对于查询频率高的字段创建索引: 2. 对排序.分组.联合查询频率高的字段创建索引: 3. 索引的数目不宜太多 原因:a.每创建一个索引都会占用相应的物理 ...

  10. 【html5】解决HTML5新标签不兼容的问题

    html5标签: 1.语义化好 -> SEO a). 程序交流方便 b). 搜索引擎友好 baidu -> 不认识 google 2.本身不兼容,想兼容低版本,请使用如下方法: 方式一:使 ...