您的位置:首页 > 编程语言 > ASP

关于ASP.NET中的Forms身份验证详解

2010-05-02 14:58 369 查看
每个web开发人员,都或多或少的接触到了身份验证,而接触最多的大概就是windows验证和Forms身份验证了,本文这里就详解下Forms身份验证,对过去一段时间的学习做一个总结。

在开始之前,我将新建一个web项目用来测试,下面是几个主要的目录:

Admin目录: 管理员目录
--Default.aspx  管理员目录下的页面
User目录:  普通用户目录
--Default.aspx  普通用户目录下的页面
Root目录:  根目录
--Default.axpx  根目录下的默认页面
--Login.aspx    根目录下面的登录页面
--web.config    根目录下的配置文件
--Global.asax   根目录下的全局控制文件(在VS2005后需要手工添加)


后续我们将针对web.config的配置,Login页面验证身份和Global.asax中对用户身份的验证来描述一个完整的验证过程。

一:web.config设置
<!--启用Forms身份验证-->
<authentication mode="Forms">
<forms name="BeginningWeb2008.APSXAUTH" loginUrl="login.aspx" path="/" protection="All" />
</authentication>
<!--拒绝所有匿名用户访问-->
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>
<!--设置Login.aspx可以匿名访问-->
<location path="default.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>


//二:身份验证
protected void Button1_Click(object sender, EventArgs e)
{
if (txtUserName.Text != "" && txtPassword.Text != "")
{
string user_name = txtUserName.Text;
FormsAuthentication.Initialize();
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
user_name,
DateTime.Now,
DateTime.Now.AddMinutes(5),
true,
"user defined data here",
FormsAuthentication.FormsCookiePath);
string encTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
Response.Cookies.Add(cookie);
Response.Redirect(FormsAuthentication.GetRedirectUrl(user_name, true));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: