博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET MVC form验证
阅读量:6553 次
发布时间:2019-06-24

本文共 1359 字,大约阅读时间需要 4 分钟。

网站结构

webconfig

设置为form验证, 并拒绝所有的匿名用户
 
 

如果我们徐凯开放首页比如说Home/Index,那么做如下配置.  如果是Home文件夹下所有的页面都能访问, 那么 path=”Home”即可

 
 
 

cookie

启动程序, 来到登录页面. 如果登录成功, 那么我们需要写入cookie.

登陆页面

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage
" %>
 
 
 
Index
 
 
<% using( Html.BeginForm()){
%>
登录
<%: Html.TextBoxFor(m => m.UserName, new { @class = "log" })%>
<%: Html.TextBoxFor(x => x.RealName) %>
<%};%>
 
 
 
处理方法
[HttpPost]
public ActionResult Index(Models.User model) {
if (model.UserName == "admin")
{
//创造票据
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(model.UserName, false, 1);
//加密票据
string ticString = FormsAuthentication.Encrypt(ticket);
//输出到客户端
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, ticString));
//跳转到登录前页面
return Redirect(HttpUtility.UrlDecode( Request.QueryString["ReturnUrl"]));
}
return View();
}
退出.
通过
 
new
 FormsAuthenticationTicket(model.UserName,
 
false,
 
时长); 设置.AXPXAUTH过期时长. 但是如果
newHttpCookie(FormsAuthentication.FormsCookieName, ticString) 这个cookie对象没有设置过期时间, 那么上面设置的时长再长, cookie的生命周期还是浏览器的生命周期.
public ActionResult Logout() {
FormsAuthentication.SignOut();
return Redirect(FormsAuthentication.LoginUrl);
}

这样, 在默认首页 home/index 中可以得到

八卦一下. User的值是在哪里获得的呢?我们加载进来一个DLL, 自定义的httpmodule

跟踪一下. 发现在application_AuthenticateRequest事件里面, 我们可以获得User对象了.

转载地址:http://ojjco.baihongyu.com/

你可能感兴趣的文章
文档的压缩与打包
查看>>
interactive_timeout和wait_timeout的关系
查看>>
tftp+syslinux 6.x 搭建PXE系统(支持EFI模式)
查看>>
python3 在不同操作系统安装第三方库方法
查看>>
redhat5.8+mfs(提供软件包文档)
查看>>
python编写登录接口
查看>>
MySQL高可用方案之多级复制
查看>>
OVS 中的各种网络设备 - 每天5分钟玩转 OpenStack(128)
查看>>
Python火车票代码
查看>>
Android开发者指南(7) —— App Install Location
查看>>
Trafficserver Cluster模式
查看>>
埃森哲:人工智能与物联网带动保险科技投资潮
查看>>
呼叫中心员工的压力源分析与改善建议
查看>>
云体系联盟亮相中国互联网大会,推动产业融合创新
查看>>
红帽公司调整OpenStack平台升级策略,旨在吸引更多受众
查看>>
亚马逊推出 Blox,用于 EC2 容器服务的开源工具集合
查看>>
SSDB 数据库的图形界面管理工具发布了!
查看>>
Linux:在中国没有真正的新闻
查看>>
《Python地理数据处理》——2.7 类
查看>>
搭建个性化推荐系统
查看>>