かんたんASP.NET - リスト

第6章 ログイン処理


リスト 6-1 Windows認証の有効化設定

<system.web>
  <authentication mode="Windows" />
</system.web>

↑Top


リスト 6-2 フォーム認証の有効化設定

<system.web>
  <authentication mode="Forms" />
</system.web>

↑Top


リスト 6-3 承認設定

<system.web>
  <authorization>
    <allow users="許可するユーザーID" />
    <deny users="拒否するユーザーID" />
  </authorization>
</system.web>

↑Top


リスト 6-4 一般的な承認設定の例

<system.web>
  <authorization>
    <allow users="Taro" />
    <allow users="Hanako" />
    <deny users="*" />
  </authorization>
</system.web>

↑Top


リスト 6-5 Loginコントロールのソース

<asp:Login ID="Login1" runat="server"></asp:Login>

↑Top


リスト 6-6 LoginViewコントロールのソース

<asp:LoginView ID="LoginView1" runat="server">
  <LoggedInTemplate>
    ~ログイン済のとき表示する内容~
  </LoggedInTemplate>
  <AnonymousTemplate>
    ~未ログインのとき表示する内容~
  </AnonymousTemplate>
</asp:LoginView>

↑Top


リスト 6-7 LoginNameコントロールのソース

<asp:LoginName ID="LoginName1" runat="server" />

↑Top


リスト 6-8 LoginStatusコントロールのソース

<asp:LoginStatus ID="LoginStatus1" runat="server" />

↑Top


リスト 6-9 Web.configでのプロファイルの設定

<system.web>
  ~
  <profile enabled="true">
    <properties>
      <add name="プロファイル名" type="型名"
        defaultValue="既定値"/>
    </properties>
  </profile>
  ~
</system.web>

↑Top


リスト 6-10 type属性で基本的な型以外を使用する例

<add name="BackColor" type="System.Drawing.Color" />

↑Top


リスト 6-11 プロファイルの値の取得

Dim profileValue As String = Profile.MyProperty
string profileValue = Profile.MyProperty;

↑Top


リスト 6-12 プロファイルに値を設定

Profile.MyProperty = "property-value"
Profile.MyProperty = "property-value";

↑Top


リスト 6-13 LoginコントロールのLoggedInイベント

Protected Sub Login1_LoggedIn(ByVal sender As Object _
  , ByVal e As System.EventArgs) Handles Login1.LoggedIn
  ' ログイン後処理
End Sub

protected void Login1_LoggedIn(object sender, EventArgs e)
{
  // ログイン後処理
}

↑Top


リスト 6-14 Dafault.aspxファイル

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

<!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 id="Head1" runat="server">
  <title>トップページ</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <h1>トップページ</h1>
    <asp:LoginStatus ID="LoginStatus1" runat="server"
      LogoutPageUrl="~/Default.aspx" />
    <asp:LoginView ID="LoginView1" runat="server">
      <AnonymousTemplate>
        <h3>ログインしてください</h3>
      </AnonymousTemplate>
      <LoggedInTemplate>
        <h3>メンバーページへどうぞ</h3>
      </LoggedInTemplate>
    </asp:LoginView>
  </div>
  <hr />
  <asp:HyperLink ID="MemberHyperLink" runat="server"
    NavigateUrl="~/Members/MemberPage.aspx">
    メンバーページ</asp:HyperLink>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>
    <h1>トップページ</h1>
    <asp:LoginStatus ID="LoginStatus1" runat="server"
      LogoutPageUrl="~/Default.aspx" />
    <asp:LoginView ID="LoginView1" runat="server">
      <AnonymousTemplate>
        <h3>ログインしてください</h3>
      </AnonymousTemplate>
      <LoggedInTemplate>
        <h3>メンバーページへどうぞ</h3>
      </LoggedInTemplate>
    </asp:LoginView>
  </div>
  <hr />
  <asp:HyperLink ID="MemberHyperLink" runat="server"
    NavigateUrl="~/Members/MemberPage.aspx">
    メンバーページ</asp:HyperLink>
  </form>
</body>
</html>

↑Top


リスト 6-15 Dafault.aspx.vbファイル

Partial Class _Default
  Inherits System.Web.UI.Page

End Class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page 
{
  protected void Page_Load(object sender, EventArgs e)
  {

  }
}

↑Top


リスト 6-16 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>
    <h1>ログイン</h1>
    <asp:Login ID="Login1" runat="server"></asp:Login>
    <asp:ValidationSummary ID="ValidationSummary1"
      runat="server"
      ValidationGroup="Login1" />
  </div>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" 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>
    <h1>ログイン</h1>
    <asp:Login ID="Login1" runat="server"></asp:Login>
    <asp:ValidationSummary ID="ValidationSummary1"
      runat="server"
      ValidationGroup="Login1" />
  </div>
  </form>
</body>
</html>

↑Top


リスト 6-17 Login.aspx.vbファイル

Partial Class Login
  Inherits System.Web.UI.Page

End Class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Login : System.Web.UI.Page 
{
  protected void Page_Load(object sender, EventArgs e)
  {

  }
}

↑Top


リスト 6-18 Members/MemberPage.aspxファイル

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

<!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>
    <h1>
      メンバーページ</h1>
    <asp:LoginStatus ID="LoginStatus1" runat="server" LogoutPageUrl="~/Default.aspx"
      LogoutAction="Redirect" />
    <h3>
      ようこそ
      <asp:LoginName ID="LoginName1" runat="server" />
      さん</h3>
  </div>
  <hr />
  <asp:HyperLink ID="TopHyperLink" runat="server" NavigateUrl="~/Default.aspx">トップ</asp:HyperLink>
  </form>
</body>
</html>

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="MemberPage.aspx.cs" Inherits="Members_MemberPage" %>

<!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>
    <h1>メンバーページ</h1>
    <asp:LoginStatus ID="LoginStatus1" runat="server"
      LogoutPageUrl="~/Login.aspx"
      LogoutAction="Redirect" />
    <h3>ようこそ
      <asp:LoginName ID="LoginName1" runat="server" />
      さん</h3>
  </div>
  <hr />
  <asp:HyperLink ID="TopHyperLink" runat="server"
    NavigateUrl="~/Default.aspx">トップ</asp:HyperLink>
  </form>
</body>
</html>

↑Top


リスト 6-19 Members/MemberPage.aspx.vbファイル

Partial Class Members_MemberPage
  Inherits System.Web.UI.Page

End Class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Members_MemberPage : System.Web.UI.Page 
{
  protected void Page_Load(object sender, EventArgs e)
  {

  }
}

↑Top


リスト 6-20 Membersフォルダのweb.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <authorization>
      <deny users="?" />
    </authorization>
  </system.web>
</configuration>

↑Top