您的位置:首页 > 游戏 > 手游 > 分享一个 ASP.NET WebForm 使用 Form Authentication 的例子

分享一个 ASP.NET WebForm 使用 Form Authentication 的例子

2024/11/18 6:24:03 来源:https://blog.csdn.net/yangshuquan/article/details/139455386  浏览:    关键词:分享一个 ASP.NET WebForm 使用 Form Authentication 的例子

image

前言

前些天一个朋友说他们客户的网站出了点故障,让我帮忙看看,这个网站还是用 ASP.NET WebForm 做的,很久以前的技术了,不过很多客户就是这样,只要网站还能稳定地运行,一般就不会去折腾升级,_

简单地看了下,问题比较简单,只是在连接 LDAP 域账户进行身份验证的过程中出了问题,随手就解决了,不过 Form Authentication 算是一种经典而又灵活的身份验证的方式,尤其是配合近些年比较流行的 LDAP/AD 域账户,账户的安全由 LDAP/AD 域分配和控制,Form Authentication 的灵活性和方便性就体现出来,前段时间写过一篇 ASP.NET MVC 使用 Form Authentication 的例子,今天继续记录和分享一下 ASP.NET WebForm 使用 Form Authentication 的步骤。

Step By Step 步骤

  1. 在 .NET FrameWork 框架下创建一个 ASP.NET WebForm 项目

  2. 配置 Web.config

    <configuration><system.web><authentication mode="Forms"><forms loginUrl="Login_.aspx"></forms></authentication><!--设置哪些页面需要身份验证,哪些可以匿名访问,下里这里是所有页面都要身份验证--><authorization><deny users="?"/></authorization>......</system.web>......
    </configuration>
    
  3. 创建 Logon.aspx 页面,并编写后端登录方法(留意注释

    using System.Data.SqlClient;
    using System.Web.Security;private bool ValidateUser( string userName, string passWord )
    {// 从数据库或其它源验证帐号密码
    }// 点击登录按钮
    private void cmdLogin_ServerClick(object sender, System.EventArgs e)
    {// 方法一// 调用 RedirectFromLoginPage 方法自动生成表单身份验证 Cookie,并重定向用户到事件的适当 cmdLogin_ServerClick 页面// if (ValidateUser(txtUserName.Value,txtUserPass.Value))// 	FormsAuthentication.RedirectFromLoginPage(txtUserName.Value, chkPersistCookie.Checked);// else// 	Response.Redirect("logon.aspx", true);// 方法二,比较灵活// 自定义 FormsAuthenticationTicket 数据,生成身份验证票证,对其进行加密,创建 Cookie,将其添加到响应中,然后重定向用户if (ValidateUser(txtUserName.Value,txtUserPass.Value)){FormsAuthenticationTicket tkt;string cookiestr;HttpCookie ck;tkt = new FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now,DateTime.Now.AddMinutes(30), chkPersistCookie.Checked, "your custom data");cookiestr = FormsAuthentication.Encrypt(tkt);ck = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr);if (chkPersistCookie.Checked)ck.Expires=tkt.Expiration;ck.Path = FormsAuthentication.FormsCookiePath;Response.Cookies.Add(ck);string strRedirect;strRedirect = Request["ReturnUrl"];if (strRedirect==null)strRedirect = "default.aspx";Response.Redirect(strRedirect, true);}elseResponse.Redirect("logon.aspx", true);
    }
    
  4. 编写 Logon.aspx 页面的前端代码,比较简单,忽略

  5. 运行项目,输入账号和密码,点击登录按钮,即可验证登录效果。

我是老杨,一个奋斗在一线的资深研发老鸟,让我们一起聊聊技术,聊聊人生。

都看到这了,求个点赞、关注、在看三连呗,感谢支持。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com