今天閒著無聊.
登入.aspx HTML程式碼
1<%@ 頁面語言="c#" Codebehind="02Login.aspx.cs" AutoEventWireup="false" Inherits="驗證._02Login" %>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 轉場//EN" >
3<HTML>
4 <頭>
5 <標題>02登入</標題>
6 <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
7 <meta name="CODE_LANGUAGE" Content="C#">
8 <meta name="vs_defaultClientScript" content="JavaScript">
9 <meta name="vs_targetSchema" content=" http://schemas.microsoft.com/intellisense/ie5 ">
10 </頭>
11 <body MS_POSITIONING="GridLayout">
12 <form id="Form1" method="post" runat="server">
13 <FONT face="宋體">
14 <TABLE id="Table1" style="Z-INDEX: 102; 左: 152px; 寬度: 446px; 位置: 絕對; 上方: 80px; 高度: 72px"
15 cellSpacing =“1”cellPadding =“1”寬度=“446”邊框=“1”>
16 <TR>
17 <TD>
18 <asp:label id="Label1" runat="server">使用者名稱:</asp:label></TD>
19 <TD>
20 <asp:textbox id="tbName" runat="server" Width="183px"></asp:textbox></TD>
21 <TD>
22 <asp:requiredfieldvalidator id="RequiredFieldValidator1" runat="server" 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="server" Width="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="server"></asp:checkbox></TD>
36 <TD></TD>
37 </TR>
38 </表>
39 <asp:button id="btnLoginBetter" style="Z-INDEX: 101; 左: 288px; 位置: 絕對; 頂部: 240px"
40 runat="server" Width="78px" Text="登入"></asp:button>
41 <asp:HyperLink id="HyperLink1" style="Z-INDEX: 103; 左: 456px; 位置: 絕對; 上: 240px"
42 runat="server" NavigateUrl="Default.aspx">超連結</asp:HyperLink></FONT>
43 </形式>
44 </body>
45</HTML>
login.aspx.cs程式碼如下
私人無效btnLoginBetter_Click(物件發送者,System.EventArgs e)
{
if (this.tbName.Text == "admin" && this.tbPass.Text == "admin")
{
FormsAuthenticationTicket Ticket = new FormsAuthenticationTicket(1,this.tbName.Text,DateTime.Now,DateTime.Now.AddMinutes(30),this.PersistCookie.Checked,"User");//建立驗證表單
string cookieStr = FormsAuthentication.Encrypt(ticket);進行加密
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName,cookieStr);建立一個cookie,cookie名為web.config設定的名稱,設定為加密後的datacookieStr,
if (this.PersistCookie.Checked)//判斷使用者是否選取儲存cookie
cookie.Expires = Ticket.Expiration;//取得cookie過期時間
cookie.Path = FormsAuthentication.FormsCookiePath;//設定cookie儲存路徑
Response.Cookies.Add(cookie);
字串 strRedirect;
strRedirect = Request["ReturnUrl"];//取出返回url
if (strRedirect == null)
strRedirect = "預設.aspx";
Response.Redirect(strRedirect,true);
}
別的
{
Response.Write("<script>alert('帳號或密碼錯誤!');self.location.href='02login.aspx'</script>");
}
}
Default.aspx HTML程式碼
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONTface="宋體">
<asp:Label id="Label1" style="Z-INDEX: 106; LEFT: 224px; POSITION: Absolute; TOP: 72px" runat="server">使用者名稱:</asp:Label>
<asp:Label id="Label2" style="Z-INDEX: 102; LEFT: 220px; POSITION: Absolute; TOP: 136px" runat="server">身分:</asp:Label>
<asp:Label id="lbUser" style="Z-INDEX: 103; 左: 350px; 位置: 絕對; 頂部: 79px" runat="server"></asp:Label>
<asp:Label id="lbSf" style="Z-INDEX: 104; 左: 355px; 位置: 絕對; 上: 133px" runat="server"></asp:Label>
<asp:Button id="btnLogout" style="Z-INDEX: 105; 左: 261px; 位置: 絕對; 上: 192px"
runat="server" Text="註銷" Width="101px"></asp:Button></FONT>
</形式>
</正文>
後置代碼
私人無效Page_Load(物件發送者,System.EventArgs e)
{
this.lbUser.Text = User.Identity.Name;
if (User.IsInRole("管理員"))
this.lbSf.Text = "管理員";
別的
this.lbSf.Text = "使用者";
}
Web 表單設計器產生的程式碼#region Web 表單設計器產生的程式碼
覆蓋 protected void OnInit(EventArgs e)
{
//
// CODEGEN: 呼叫是 ASP.NET Web 表單設計者所必需的。
//
初始化組件();
基.OnInit(e);
}
/**//// <摘要>
/// 設計器支援所需的方法 - 不要使用程式碼編輯器修改
/// 該方法的內容。
/// </摘要>
私有無效InitializeComponent()
{
this.btnLogout.Click += new System.EventHandler(this.btnLogout_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void btnLogout_Click(物件發送者, System.EventArgs e)
{
FormsAuthentication.SignOut();//註銷票
Response.Redirect("login.aspx",true);傳回login.aspx頁面
}
webconfig配置如下
<身份驗證模式=“表單”>
<forms name=".SecurityDemo" loginUrl="login.aspx">//.SecurityDemo為cookie名稱,
</形式>
</認證>
<授權>
<deny users="?"/> //拒絕所有匿名用戶
<allow Roles="admins"/>//允許管理等級使用者訪問
</授權>
自己感覺ASP寫的多了,一般是用session進行判斷用戶是否合法,但是在一個ASP.NET專案中使用身份驗證,基本上所有頁面都要驗證才能訪問,感覺有點遷強。 config中頁面對指定的頁面設定權限,設定程式碼如下
<位置路徑=“admin.aspx”>
<系統.web>
<授權>
<拒絕用戶=“?” />
</授權>
</system.web>
</位置>
如果只有頁面幾個設定如上程式碼,感覺還可以接受。
可能是專案小專案做多了,大的沒接觸過。
http://www.cnblogs.com/paleyyang/archive/2006/10/21/536147.html