當訪問默認首頁default.aspx時,會自動跳轉到login.ASPx頁面上請求登錄,隨便輸入用戶名和密碼,點擊“登錄”按鈕,會回到首頁,並顯示當前登錄的用戶名。
Web.config
<configuration>
<system.web>
<compilation debug="true"/>
<authentication mode="Forms">
<forms loginUrl="login.aspx" name = ".ASPXFORMSAUTH" />
</authentication>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</configuration>
default.ASPx
<Html>
<HEAD>
<TITLE>首頁</TITLE>
<script language="VB" runat="server">
Sub Page_Load(Sender As Object, e As EventArgs)
Message.Text = String.Format("你好,{0}", Context.User.Identity.Name)
End Sub
sub btnSignout_Click(Sender as Object, E as EventArgs)
FormsAuthentication.SignOut()
Response.Redirect("login.ASPx")
end sub
</script>
</HEAD>
<BODY>
<ASP:label id="Message" runat="server"/>
<br>
<form method="post" runat="server">
<ASP:button id="btnSignout" Text="退出登錄" runat="server" OnClick="btnSignout_Click"/>
</form>
</BODY>
</Html>
login.ASPx
<HEAD>
<TITLE>首頁</TITLE>
<script lanugage="c#" runat="server">
private void Page_Load(object sender, EventArgs e)
{
if (Request.IsAuthenticated)
Response.Redirect("default.ASPx");
}
void btnLogin_Click(Object sender, EventArgs e)
{
if (txtUsername.Text != null && txtUsername.Text != String.Empty && txtPassword.Text != null && txtPassWord.Text != String.Empty)
FormsAuthentication.RedirectFromLoginPage(txtUsername.Text, true);
else
lblError.Text = "錯誤的用戶名/密碼";
}
</script>
</HEAD>
<BODY>
<form method="post" runat="server">
<ASP:Label id="lblUsername" runat="server" Text="用戶名:"/>
<ASP:Textbox id="txtUsername" runat="server"/>
<br>
<br>
<ASP:Label id="lblPassWord" runat="server" Text="密 碼:"/>
<ASP:Textbox id="txtPassword" runat="server" TextMode="passWord"/>
<br>
<ASP:button id="btnLogin" runat="server" Text="登錄" OnClick="btnLogin_Click" />
</form>
<hr>
<br>
<ASP:Label id="lblError" forecolor="red" runat="server"/>
</BODY>
</Html>