[转]几种身份验证的实现
2008-07-04 09:06
176 查看
身份验证,特别是在用户没有登陆的情况下不能访问其他页面的控制,好象总是避免不了。要达到这样的目的,方法其实有很多。
1.采用session控制。在登陆的时候给session赋值,而后在其他所有页面的Load事件中对session进行判断。这个利用了session针对单用户的特点,实现方法很简单,但是需要每个页面判断,有些不尽人意.
2.cookie实现。自定义一个基类,用来判断cookie值,并根据具体情况作出一些动作(是继续作业,还是跳转到login).其他页面继承这个类即可.具体实现可参考:http://blog.csdn.net/JustLovePro/archive/2008/04/07/2259296.aspx; http://blog.csdn.net/JustLovePro/archive/2008/04/08/2259369.aspx; 采用这种方式的好处就是非常灵活,因为对cookie的控制都是有我们自己控制的. 单每个页面还是要继承这个基类,要避免这个,就得看MS的了。
3.Forms身份验证.MS在这里为我们做了大量的工作,我们要做的其实就是简单的配置就好了。然后就是几个已经封装好的类的使用。看代码:
web.config:
<authentication mode="Forms">
<forms
name=".ASPXAUTH"
loginUrl ="Login.aspx"
defaultUrl ="FormsDemo.aspx"
protection ="All"
timeout ="30"
path ="/"
requireSSL ="false"
slidingExpiration ="true"
enableCrossAppRedirects ="false"
cookieless ="UseDeviceProfile"
domain =""
>
</forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
------------------------------------
Login.cs
protected void btnLogin_Click(object sender, EventArgs e)
{
string username = txtName.Text;
FormsAuthentication.RedirectFromLoginPage(username, true);
}
---------------------
主页面,显示登陆者信息和注销帐户:
protected void Page_Load(object sender, EventArgs e)
{
if (User.Identity.IsAuthenticated)
{
FormsIdentity identity = User.Identity as FormsIdentity;
FormsAuthenticationTicket ticket = identity.Ticket;
Response.Write("UserName:" + identity.Name);
Response.Write("Time" + DateTime.Now.ToString());
}
else
{
FormsAuthentication.RedirectToLoginPage();
}
}
protected void btnsignout_Click(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
}
===============================
就这样,其他页面不用实现任何代码,就可以达到目的。
1.采用session控制。在登陆的时候给session赋值,而后在其他所有页面的Load事件中对session进行判断。这个利用了session针对单用户的特点,实现方法很简单,但是需要每个页面判断,有些不尽人意.
2.cookie实现。自定义一个基类,用来判断cookie值,并根据具体情况作出一些动作(是继续作业,还是跳转到login).其他页面继承这个类即可.具体实现可参考:http://blog.csdn.net/JustLovePro/archive/2008/04/07/2259296.aspx; http://blog.csdn.net/JustLovePro/archive/2008/04/08/2259369.aspx; 采用这种方式的好处就是非常灵活,因为对cookie的控制都是有我们自己控制的. 单每个页面还是要继承这个基类,要避免这个,就得看MS的了。
3.Forms身份验证.MS在这里为我们做了大量的工作,我们要做的其实就是简单的配置就好了。然后就是几个已经封装好的类的使用。看代码:
web.config:
<authentication mode="Forms">
<forms
name=".ASPXAUTH"
loginUrl ="Login.aspx"
defaultUrl ="FormsDemo.aspx"
protection ="All"
timeout ="30"
path ="/"
requireSSL ="false"
slidingExpiration ="true"
enableCrossAppRedirects ="false"
cookieless ="UseDeviceProfile"
domain =""
>
</forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
------------------------------------
Login.cs
protected void btnLogin_Click(object sender, EventArgs e)
{
string username = txtName.Text;
FormsAuthentication.RedirectFromLoginPage(username, true);
}
---------------------
主页面,显示登陆者信息和注销帐户:
protected void Page_Load(object sender, EventArgs e)
{
if (User.Identity.IsAuthenticated)
{
FormsIdentity identity = User.Identity as FormsIdentity;
FormsAuthenticationTicket ticket = identity.Ticket;
Response.Write("UserName:" + identity.Name);
Response.Write("Time" + DateTime.Now.ToString());
}
else
{
FormsAuthentication.RedirectToLoginPage();
}
}
protected void btnsignout_Click(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
}
===============================
就这样,其他页面不用实现任何代码,就可以达到目的。
相关文章推荐
- 几种实现身份验证的方式
- 利用HttpModule和forms身份验证,实现角色验证控制
- 实现带有身份验证的WebService
- 如何使用 C# .NET 在 ASP.NET 应用程序中实现基于窗体的身份验证
- PureFTP借助MySQL实现用户身份验证的操作教程
- 自定义类实现ASP.NET的统一身份验证
- 利用.net的内部机制在asp.net中实现身份验证
- 基于SpringBoot实现用户身份验证工具
- 如何使用 C# .NET 在 ASP.NET 应用程序中实现基于窗体的身份验证
- 使用HttpContext中的User属性来实现用户身份验证之用户验证票篇
- android 与asp.net mvc 实现基本的身份验证
- asp.net中几种常用的身份验证方法总结
- 如何使用 C# .NET 在 ASP.NET 应用程序中实现基于窗体的身份验证
- 使用HttpContext的User属性来实现用户身份验证
- 分别用(Windows/Form/Soap/WebService)实现用户身份验证(含示例代码下载)
- asp.net forms 身份验证方式下跨域登录信息共享的实现方法
- 使用ASP.Net Forms模式实现WebService身份验证
- linux-apache安装实现用户登录身份验证
- 如何在Web应用程序中实现自定义身份验证对话框
- ASP.NET安全身份验证的实现