前言

用户登录是个很常见的业务需求,在ASP.NET中,这个过程被称为身份认证。 由于很常见,因此,我认为把这块内容整理出来,与大家分享应该是件有意义的事。

在开发ASP.NET项目中,我们最常用的是Forms认证,也叫【表单认证】。 这种认证方式既可以用于局域网环境,也可用于互联网环境,因此,它有着非常广泛的使用。 这篇博客主要讨论的话题是:ASP.NET Forms 身份认证。

配置 web.config 节点

<system.web>里面添加

<authentication mode="Forms">
<forms cookieless="UseCookies" loginUrl="Login.aspx" />
</authentication>
<authorization>
<deny users="?"/>
</authorization>

<system.webServer>里面添加

\\实现对静态文件的验证
<handlers>
<add name="static_html_handler_htm" path="*.htm" verb="*" type="System.Web.StaticFileHandler" />
<add name="static_html_handler_html" path="*.html" verb="*" type="System.Web.StaticFileHandler" />
</handlers>

前台界面

<div>
<h1>用户状态</h1><br />
<% if( Request.IsAuthenticated ) { %>
当前用户已登录,登录名:<%= Context.User.Identity.Name.HtmlEncode() %> <br />            
<% } else { %>
<b>当前用户还未登录。</b>
<% } %>            
</div>

后台代码

登录

if(登录成功){

//将身份验证的用户Admin重定向回最初请求的 URL 或默认 URL(default.aspx)。
FormsAuthentication.RedirectFromLoginPage("Admin", false);//false创建一个会话cookie

//或者
//FormsAuthentication.SetAuthCookie("Admin", true);//true创建一个持久性 cookie
//Response.Redirect("index.html");
}

注销

FormsAuthentication.SignOut();