Nombre del usuario: ASP.NET身份验证.感觉良好.贴出下列代码:
login.aspx HTML
1<%@ Idioma de la página="c#" Codebehind="02Login.aspx.cs" AutoEventWireup="false" Inherits="身份验证._02Login" %>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transicional//ES" >
3<HTML>
4 <CABEZA>
5 <título>02Iniciar sesión</título>
6 <meta nombre="GENERADOR" Contenido="Microsoft Visual Studio .NET 7.1">
7 <meta nombre="CODE_LANGUAGE" Contenido="C#">
8 <meta nombre="vs_defaultClientScript" contenido="JavaScript">
9 <meta name="vs_targetSchema" content=" http://schemas.microsoft.com/intellisense/ie5 ">
10</CABEZA>
11 <cuerpo MS_POSITIONING="GridLayout">
12 <form id="Form1" método="post" runat="servidor">
13 <FONT face="宋体">
14 <TABLE id="Table1" style="ÍNDICE Z: 102; IZQUIERDA: 152px; ANCHO: 446px; POSICIÓN: absoluta; ARRIBA: 80px; ALTURA: 72px"
15 cellSpacing="1" cellPadding="1" ancho="446" border="1">
16 <TR>
17 <TD>
18 <asp:label id="Label1" runat="server">用户名称:</asp:label></TD>
19 <TD>
20 <asp:textbox id="tbName" runat="servidor" Ancho="183px"></asp:textbox></TD>
21 <TD>
22 <asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="servidor" ErrorMessage="用户名不能为空!" ControlToValidate="tbName"></asp:requiredfieldvalidator></TD>
23</TR>
24 <TR>
25 <TD>
26 <asp:label id="Label2" runat="server">密码:</asp:label></TD>
27 <TD>
28 <asp:textbox id="tbPass" runat="servidor" Ancho="183px"></asp:textbox></TD>
29 <TD>
30 <asp:requiredfieldvalidator id="RequiredFieldValidator2" runat="server" ErrorMessage="密码不能为空!" ControlToValidate="tbPass"></asp:requiredfieldvalidator></TD>
31</TR>
32 <TR>
33 <TD><FONT face="宋体">是否保存Cookie</FONT></TD>
34 <TD>
35 <asp:checkbox id="PersistCookie" runat="servidor"></asp:checkbox></TD>
36 <TD></TD>
37</TR>
38 </TABLA>
39 <asp:button id="btnLoginBetter" style="ÍNDICE Z: 101; IZQUIERDA: 288px; POSICIÓN: absoluta; ARRIBA: 240px"
40 runat="servidor" Ancho="78px" Texto="登录"></asp:button>
41 <asp:HyperLink id="HyperLink1" style="ÍNDICE Z: 103; IZQUIERDA: 456px; POSICIÓN: absoluta; ARRIBA: 240px"
42 runat="servidor" NavigateUrl="Default.aspx">HyperLink</asp:HyperLink></FONT>
43 </formulario>
44 </cuerpo>
45</HTML>
login.aspx.cs
btnLoginBetter_Click privado vacío (remitente del objeto, System.EventArgs e)
{
si (this.tbName.Text == "admin" && this.tbPass.Text == "admin")
{
Boleto FormsAuthenticationTicket = new FormsAuthenticationTicket(1,this.tbName.Text,DateTime.Now,DateTime.Now.AddMinutes(30),this.PersistCookie.Checked,"User");//创建一个验证票据
cadena cookieStr = FormsAuthentication.Encrypt(ticket);进行加密
Cookie HttpCookie = nueva HttpCookie(FormsAuthentication.FormsCookieName,cookieStr);创建一个cookie,cookie名为web.config设置的名,值为加密后的数据cookieStr,
if (this.PersistCookie.Checked)//判断用户是否选中保存cookie
cookie.Expires = ticket.Expiration;//获取cookie过期时间
cookie.Path = FormsAuthentication.FormsCookiePath;//设置cookie保存路径
Respuesta.Cookies.Add(cookie);
cadena strRedirect;
strRedirect = Solicitud["ReturnUrl"];//取出返回url
si (strRedirect == nulo)
strRedirect = "Default.aspx";
Respuesta.Redirect(strRedirect,verdadero);
}
demás
{
Response.Write("<script>alert('帐号或密码错误!');self.location.href='02login.aspx'</script>");
}
}
Default.aspx HTML Descripción
<cuerpo MS_POSITIONING="GridLayout">
<id de formulario="Form1" método="publicación" runat="servidor">
<FONT face="宋体">
<asp:Label id="Label1" style="ÍNDICE Z: 106; IZQUIERDA: 224px; POSICIÓN: absoluta; ARRIBA: 72px" runat="servidor">用户名称:</asp:Label>
<asp:Label id="Label2" style="ÍNDICE Z: 102; IZQUIERDA: 220px; POSICIÓN: absoluta; ARRIBA: 136px" runat="server">身份:</asp:Label>
<asp:Label id="lbUser" style="ÍNDICE Z: 103; IZQUIERDA: 350px; POSICIÓN: absoluta; ARRIBA: 79px" runat="servidor"></asp:Label>
<asp:Label id="lbSf" style="ÍNDICE Z: 104; IZQUIERDA: 355px; POSICIÓN: absoluta; ARRIBA: 133px" runat="servidor"></asp:Label>
<asp:Button id="btnLogout" style="ÍNDICE Z: 105; IZQUIERDA: 261px; POSICIÓN: absoluta; ARRIBA: 192px"
runat="servidor" Text="注销" Ancho="101px"></asp:Button></FONT>
</formulario>
</cuerpo>
后置代码
Page_Load vacío privado (remitente del objeto, System.EventArgs e)
{
this.lbUser.Text = Usuario.Identidad.Nombre;
si (Usuario.IsInRole("Administrador"))
this.lbSf.Text = "Administrador";
demás
this.lbSf.Text = "Usuario";
}
Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码
anular el vacío protegido OnInit (EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的.
//
InicializarComponente();
base.OnInit(e);
}
/**//// <resumen>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
vacío privado InicializarComponente()
{
this.btnLogout.Click += nuevo System.EventHandler(this.btnLogout_Click);
this.Load += nuevo System.EventHandler(this.Page_Load);
}
#endregion
private void btnLogout_Click (remitente del objeto, System.EventArgs e)
{
FormsAuthentication.SignOut();//注销票
Response.Redirect("login.aspx",true);返回login.aspx页面
}
webconfig配置如下
<modo de autenticación="Formularios" >
<forms name=".SecurityDemo" loginUrl="login.aspx">//.SecurityDemo为cookie名,
</formularios>
</autenticación>
<autorización>
<denegar usuarios="?"/> //拒绝所有匿名用户
<allow roles="admins"/>//允许管理级别用户访问
</autorización>
Configuración de sesión de ASP, configuración de sesión, configuración de ASP.NET, configuración de ASP.NET上所有页面都要验证才能访问,感觉有点迁强.但可以在web.config页面对指定的页面设置权限,设置代码如下
<ruta de ubicación="admin.aspx">
<sistema.web>
<autorización>
<denegar usuarios="?" />
</autorización>
</sistema.web>
</ubicación>
如果只有几个页面设置如上代码,感觉还可以接受.但页面多了岂不是要把人累死呀..
可能是小的项目做多了,大项目没接触过.请高手给指点具体用途呀.不甚感激.
http://www.cnblogs.com/paleyyang/archive/2006/10/21/536147.html