使用authentication进行身份验证,与Forms表单登陆
做到登录时,不像在用自己的逻辑去判断用户是否登陆,就上网搜查,得知还有此方法,这个方法用起来很简单实用,第一次使用,还有很多不理解的地方,记下来方便以后查阅更改.
使用这个方法当然需要了解里面的属性和用法,网上有很多了,可以自己搜索,我就主要贴出实现代码
1.在web.config里的<system.web>节点添加
/*loginurl 登陆界面如果没有登录则跳转到次界面
*name:cookie名称,可以自己修改
*defaultUrl:默认的页面,登陆成功自动跳转到默认界面
*timeOut:cookie保留时间
*/
<authentication mode="Forms">
<forms loginUrl="Login.aspx" name=".ASPXFORMSAUTH" defaultUrl="Index.aspx" timeout="" ></forms>
</authentication>
//这个节点允许所有用户访问
<authorization>
<allow users="*" />
</authorization>
<!--//这个页面节点允许任何人访问-->//设置单个页面的权限
<location path="User_ForgotPass.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
2.登录界面判断登陆成功使用FormsAuthentication.RedirectFromLoginPage方法
string txtMail = Request["txt_mail"];
string Com_Pwd = Request["txt_pwd"];
DataTable msg = ComLogin(txtMail, Com_Pwd, true);
if (msg.Rows.Count > )
{
Session["name"] = msg.Rows[][];
Session["gs"] = msg.Rows[][];
//选中自动登录
if (chkbox2.Checked)
{
//选中自动登录则第二个参数为true,保留cookie,cookie的持续时间与web.config中的timeout时间一样
FormsAuthentication.RedirectFromLoginPage(txtMail, true);
}
else
{
FormsAuthentication.RedirectFromLoginPage(txtMail,false);
}
}
else
{
Response.Write("<script>alert('请检查输入的信息')</script>");
}
还有两种方法,同样可是实现该效果
FormsAuthentication.SetAuthCookie(txtMail,false);
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(,
username,
DateTime.Now,
DateTime.Now.AddMinutes(),
isPersistent,
userData,
FormsAuthentication.FormsCookiePath); // 加密票证
string encTicket = FormsAuthentication.Encrypt(ticket); // 创建cookie
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
HttpContext.Current.Response.Cookies.Add(cookie);
使用authentication进行身份验证,与Forms表单登陆的更多相关文章
- 第15课-数据库开发及ado.net-数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库
第15课-数据库开发及ado.net 数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库 1. 学习方法 2. 多涨见识 3. 比自己强的人一起,学习更强:比自己更聪明的人 ...
- django实现密码加密的注册(数据对象插入)-结合forms表单实现表单验证
forms表单 #_*_coding:utf-8_*_ from django import forms class regis(forms.Form): username = forms.CharF ...
- Python的Django框架中forms表单类的使用方法详解
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- button 按钮,结合onclick事件,验证和提交表单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Validator验证Ajax提交表单的方法
Validator验证Ajax提交表单的方法 转自:http://hunanpengdake.iteye.com/blog/1671360 当我们在一些稍微复杂的业务时,可能会遇到需要多个表单form ...
- 页面注册系统--使用forms表单结合ajax
页面注册系统--使用forms表单结合ajax 在Django中通过forms构建一个表单 1.urls.py 配置路由 from django.conf.urls import url from d ...
- 第一百八十六节,jQuery,验证表单插件,Ajax 表单插件,验证和提交表单
jQuery,验证表单插件,Ajax 表单插件,验证和提交表单 HTML <form id="reg" method="post" action=&quo ...
- ASP.NET MVC 客户端验证失败后表单仍然提交问题
客户端验证失败后表单仍然提交问题!导致页面刷新,辛辛苦苦输入的内容荡然无存. 多么奇怪的问题.按道理,验证失败,就应该显示各种错误信息,不会提交表单才对.而现在,错误信息正常显示,但页面却刷新了一遍. ...
- Django——11 状态保持 form表单 登陆注册样例
Django 状态保持 用户状态例子 实现注册登陆实例 django forms 表单的使用 注册功能 登陆功能 状态保持cookie和session 1.http协议是无状态的:每次请求都是一次 ...
随机推荐
- js怎么样根据select的name取到值
先看一下ASP.NET MVC的html: 在jQuery中,可以写:
- RabbitMQ在mac上的安装
1.官网下载rabbitmq-server-3.6.3, 地址http://www.rabbitmq.com/install-standalone-mac.html.2.tar -zxvf rabbi ...
- vue中封装公共方法,全局使用
1.以封装的合并单元格为例,首先建立一个util.js 2.在main.js中引用 3.直接在使用该方法的地方调用就可以了
- postgresql-清空shared_buffers
清空os缓存,shared_buffers 1.停止数据库 pg_ctl -m fast -D /pgdata stop 2.清空高速缓存前尝试将数据刷新至磁盘 sync 3.清空缓存 echo 3 ...
- Java调用HTTPS接口的证书配置
首先需要获取到证书文件. 然后,将证书导入到本地: keytool -import -noprompt -trustcacerts -alias <AliasName> -file < ...
- vue教程1-08 交互 get、post、jsonp
vue教程1-08 交互 get.post.jsonp 一.如果vue想做交互,引入: vue-resouce 二.get方式 1.get获取一个普通文本数据: <!DOCTYPE html&g ...
- Pycharm PEP8代码编写规范 选择性忽略
http://pep8.readthedocs.io/en/latest/intro.html#configuration http://blog.csdn.net/zgljl2012/article ...
- Nginx配置SSL自签名证书
生成自签名SSL证书 生成RSA密钥(过程需要设置一个密码,记住这个密码) $ openssl genrsa -des3 -out domain.key 1024 拷贝一个不需要输入密码的密钥文件 $ ...
- 机器学习基础——模型参数评估与选择
当看过一些简单的机器学习算法或者模型后,对于具体问题该如何评估不同模型对具体问题的效果选择最优模型呢. 机器学习分类 1. 经验误差.泛化误差 假如m个样本中有a个样本分类错误 错误率:E = a / ...
- 一、Linq简介
语言集成查询Language Integrated Query(LINQ)是一系列将查询功能集成到C#语言的技术统称. 传统数据查询的缺点: 简单的字符串查询,没有编译时类型检查或Intellisen ...