ASP.Netのお勉強

フォーム認証@ASP.Net

ASP.Netには、いくつかの認証がありますが、フォーム認証に関してです。
Cookieとログインフォームを利用した認証です。

web.configにて、authenticationのmodeをFormsにします。
それに伴う設定を書きます。

ログイン認証画面を作成します。
認証が行われていない場合に、リダイレクトされる画面です。
ここでは、ログインIDとパスワードのフォームとログインボタンを作成します。
ログインボタンの処理では、認証を行い、
FormsAuthentication.RedirectFromLoginPageにて要求元へリダイレクト処理を行います。

認証後の画面を作成します。
すでに認証が行われている場合は、ログインIDが画面に表示されます。
未認証の場合は、ログイン画面にリダイレクトされます。
ログアウトボタンの処理では、認証情報をクリアし、Cookieを削除します。

●web.config

<authentication mode="Forms">
    <forms name="testCookie" loginUrl="login.aspx" protection="All" timeout="30" path="/" >
    </forms>

    </authentication>
    <authorization>
        <deny users="?" />
</authorization>


●login.aspx

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="login.aspx.vb" Inherits="login" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>ログイン</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        ログインID:<asp:TextBox ID="loginIdTxt" runat="server"></asp:TextBox><br />
        パスワード:<asp:TextBox ID="passwordTxt" runat="server"></asp:TextBox><br />
        <asp:Button ID="loginBtn" runat="server" Text="ログイン" />
    </div>
    </form>
</body>
</html>



●login.aspx.vb

Partial Class login
Inherits System.Web.UI.Page

    Protected Sub loginBtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles loginBtn.Click
        '認証
        If (Me.loginIdTxt.Text = "id") And (Me.passwordTxt.Text = "password") Then
            '要求元へリダイレクト
            FormsAuthentication.RedirectFromLoginPage(Me.loginIdTxt.Text, True)
        Else
            MsgBox("認証に失敗しました。")
        End If
    End Sub
End Class


●start.aspx

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="start.aspx.vb" Inherits="start" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>スタート</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        ようこそ<asp:Label ID="loginIdLbl" runat="server" Text="Label"></asp:Label>さん<br />
    <br />
    <asp:Button ID="logoutBtn" runat="server" Text="ログアウト" />
    </div>
    </form>
</body>
</html>



●start.aspx.vb

Partial Class start
Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'ログインID表示
        Me.loginIdLbl.Text = User.Identity.Name
    End Sub

    Protected Sub logoutBtn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles logoutBtn.Click
        '認証情報クリア
        FormsAuthentication.SignOut()

        'ログイン画面へ遷移
        Response.Redirect("login.aspx")
    End Sub
End Class

Copyright (C) ASP.Netのお勉強. All Rights Reserved.