asp.net对form要验证程序

3、在网站里创建Default.aspx和Login.aspx页面
在Login.aspx页面里面放入Login和CreateUserWizard控件(因为我们新建的库中一个用户也没有,CreateUserWizard控件只是用来建立测试用户的,建好用户后可以把这个控件删除)
在Default.aspx页面中随便放入一些内容。
当我们访问Default.aspx时就会自动转入Login.aspx进行验证了。

二、自定义实现方式
采用第一种方式时会要求建立一个数据库,很多表,可能并不符合我们自己的业务要求。可以使用以下的自定义方式
1、利用Login控件的Authenticate事件
这个事件就是用来进行验证的,可以通过指定true值表示验证通过:
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
//判断用户名密码是否正确
//
e.Authenticated = true;
}2、完全抛开Login等控件,自己写代码
其实Login控件的核心主要也就是往Cookie里面放入一些值,那么我们可以在自己的代码中来进行这个操作:
protected void Button1_Click(object sender, EventArgs e)
{
//判断用户名密码是否正确
//.
FormsAuthentication.SetAuthCookie(userName, false);
if (Context.Request["ReturnUrl"] != null)
{
Response.Redirect(Context.Request["ReturnUrl"]);
}
else
{
Response.Redirect(FormsAuthentication.DefaultUrl);
}
}采用以上两种方式就不用建立默认的数据库了,直接使用我们的逻辑进行验证操作

三、自定义角色提供程序
以上说的都是用户级别的验证,在有的情况下需要根据角色来进行验证,比如指定某个目录或某个aspx文件只能让哪几个角色的用户访问,根据角色来控制的话比较方便灵活。
1、在登录验证的时候把角色信息也保存到Cookie中去:
protected void Button1_Click(object sender, EventArgs e)
{
//判断用户名密码是否正确
//.

//得到用户的角色,测试时暂时写死
string userRoles = "Admins,testst";
FormsAuthenticationTicket Ticket = new FormsAuthenticationTicket(1, user, DateTime.Now, DateTime.Now.AddMinutes(30), false, userRoles, "/");
string HashTicket = FormsAuthentication.Encrypt(Ticket);

//把角色信息保存到Cookie中去
HttpCookie UserCookie = new HttpCookie(FormsAuthentication.FormsCookieName, HashTicket);
Response.Cookies.Add(UserCookie);

if (Context.Request["ReturnUrl"] != null)
{
Response.Redirect(Context.Request["ReturnUrl"]);
}
else
{
Response.Redirect(FormsAuthentication.DefaultUrl);
}
}把角色信息加密成特定的格式保存。
2、自定义角色提供程序
如果要按照角色进行验证的话,肯定要涉及到角色提供程序,在默认情况下也是会去连接默认的数据库的,我们可以自己写一个角色提供程序来实现自己的逻辑。
首先在web.config中加入配置:
Code
enabled="true"
cacheRolesInCookie="true"
cookieName=".ASPROLES"
cookieTimeout="30"
cookiePath="/"
cookieRequireSSL="false"
cookieSlidingExpiration="true"
cookieProtection="All" >

type="MyRoleProvider"
writeExceptionsToEventLog="false" />

这个就是指定我们的角色提供类MyRoleProvider。
这个类必须从System.Web.Security.RoleProvider继承,只要重载实现一个方法就可以了(其他方法返回异常):
public override string[] GetRolesForUser(string username)
{
FormsIdentity Id = HttpContext.Current.User.Identity as FormsIdentity;
if (Id != null)
{
return Id.Ticket.UserData.Split(new Char[] { ',' });
}
return null;
}也就是从我们之前保存到Cookie中的值取得用户角色(FormsAuthentication会自动把保存的cookie转化成User内的值)

时间: 2024-09-17 08:40:48

asp.net对form要验证程序的相关文章

简单asp.net服务器数字验证程序

简单asp教程.net服务器数字验证程序 <asp:button id="txtsubmit" runat="server" onclientclick="var test=document.getelementbyid('textbox1').value;if(parseint(test,10)>100) alert('取款额度不能大于100'); else return;"  text="button" onc

asp.net使用ODP即oracle连接方式的的防注入登录验证程序

 这篇文章主要介绍了asp.net使用ODP即oracle连接方式的的防注入登录验证程序,需要的朋友可以参考下 网上有很多SQL连接方式的登录验证,但没有oracle连接方式的,我摸索了一上午写了这个可执行的函数,分享给大家 代码如下: // 用户登录检查 public bool LoginCheck(string f_LoginName, string f_LoginPass) { bool result = false; // 正则表达式检查 if (Regex.IsMatch(f_Logi

Asp快速入门,快速出程序!

程序|快速入门 我工作一年了,学会了Asp.Php,本人是金属材料热处理专业毕业,在学校根本没搞过,后来毕业在网吧干了一个月受不了回家自学asp,照着书学了三个月,才勉强写了个聊天室程序.后来在公司学php,只用了一个星期就上手了,把东方自助建站有几个小错误搞定,还写了一个简单的自助站点列表.我总结了一下,之所以后来学php能有这样的速度就是因为我直接接触程序(当然和asp的基础是分不开的),所以我认为要快速入门asp最好的办法就是看程序. asp和htm相比最重要的就是操作数据库,所以快速入门

用ASP技术编制隐藏用户密码程序

程序 用ASP技术编制隐藏用户密码程序 摘自:软件世界 作者:阿干 Internet(或Intranet)上带权限的查询,只有"合法用户"才能进入.这种机制是通过Web程序实现的.在访问过程中,如果程序设计得不好,就会将用户口令暴露在地址栏里(举一个例子:http://www.mmm.nnn/default.asp ?superusername=john&passwd=john123,用户名john和密码john123全露出来了),这样系统就无保密和安全性可言了.怎样避免这种现

ASP.NET讲座(3)-输入验证控件

asp.net|控件 3.1 ASP.net解决了ASP的难题:验证表单填写的正确性 如今的商业网站,或者个人网站,多少都有客户调查啊,用户注册之类的东西,必然会用到表单,这些表单的填写正确与否,明显是由手写代码的方式来控制的.我承认编写代码,是一项有趣的工作,不过每次验证表单都来手写代码,我们希望提高我们的工作效率,并不是把我们很有限的时间花在表单的验证工作上. 基于另外的一些原因,Web应用程序很不好验证用户的输入,HTML 3.2 规范可以让你控制用户的反馈,但恶意的或者技术高超的用户可以

在ASP网站设计中表单验证

表单验证|设计|表单验证 一般的动态网站需要通过表单来收集用户信息,或者实现与用户的交互,虽然我们相信绝大多数人士既然选择了填写表单就会认真的完成,但是亦不能避免无聊人士乱填表单,况且即使一个正常用户在填写过程中也会无意识的出现一些填写错误,或者他们忘记了填某些选项.通常为了避免这种情况,开发者会给表单加一个验证的过程,在表单数据提交到服务器之前或者服务器之后对用户填写的数据进行验证,若遇到错误的填写则返回要求用户进行更正.   在ASP中程序员们一般是这样做的:   1.用JavaScript

Asp.Net实现FORM认证的一些使用技巧(必看篇)_实用技巧

最近因为项目代码重构需要重新整理用户登录和权限控制的部分,现有的代码大体是参照了.NET的FORM认证,并结合了PORTAL KITS的登录控制,代码比较啰嗦,可维护性比较差.于是有了以下的几个需求(大多数系统应该都会碰到): 1.用.NET自带的FORM认证来实现安全登录 2.登录后需要记录登录用户的基本信息,方便所有页面调用 3.记录本机登录状态,短时间关闭窗口后不用重新登录 4.权限控制和代码的文件夹结构相呼应,即按角色允许访问不同的目录 5.权限控制有可能需要细化到每一个页面,即按角色允

最简单的用户登录js验证程序

最简单的用户登录js验证程序 <script language="javascript"> <!-- function form1_onsubmit() { if(document.form1.keyword.value=="")     {       alert("请输入查询关键字!")       document.form1.keyword.focus()       return false      } else i

编写简洁的页面表单验证程序

表单验证|程序|页面 看了山人表单验证,又看了其他一些验证程序和相关的一些参考资料,写出了一个比较简洁的js表单验证程序. 功能简述: 验证: http地址 时间日期 e-mail 数字 字符长度检查 一项输入与另一项输入比较(例如:密码的确认输入) 大小比较(只能有一个比较符号) 特点 扩展容易,可以方便的添加自己需要的验证方式 兼容性好(ie5,6 firefox,oprea) 可用性好,没有使用alert()来弹出提示 编写思路: 整个程序的结构及较简单,为了能够验证一些常用的格式,先对j