開発者カテゴリ Visual Studio 2005による Web アプリケーション入門 アジェンダ Webアプリケーション開発:ASP.NET の基礎 基本的な環境、Visual Studio .NET での開発 サーバー コントロール 基礎、サーバー イベント処理、ビュー ステート セッション管理 認証 (authentication) と承認 (authorization) ASP.NET ASP.NETとは ? Webアプリケーション向けアーキテクチャ Web フォーム、XML Web サービス サーバーサイドアプリケーション IIS(Internet Information Service) + .NET Framework 実行時は、JITコンパイルによってネイティブコードとして実行 従来の ASPのバージョンアップ以上のもの 開発生産性の高いプログラミングモデル C#やVB .NETなど、オブジェクト指向プログラミング言語が使用可能 HTTPやHTML、XMLなどのネットワーク上の実装を意識させない IIS Windows 2000 ~ .NET Framework Web フォーム Web フォームとは ? 拡張子 .aspx のファイル サーバーで実行され、ブラウザに対して HTML ベースのユー ザー インターフェイスを提供する ブラウザから HTTP を使って、A.aspx を要求すると、Web サーバー (IIS + ASP.NET ランタイム) は A.aspx 中に記述された処理を実行する 処理結果として、HTML をクライアントに返信する http://srv/app/A.aspx A.aspx ブラウザ HTML HTML、ASP.NET 固有タグ VB.NET、C# など 実行 IIS アプリケーション (仮想ディレクトリ) Visual Studio 2005 による開発 1/4 ASP.NET Web アプリケーション用のテンプレート Web フォーム アプリケーションの雛型(テンプレート)が用意され ている Web サイトを作成 Visual Studio 2005 による開発 2/4 Web サイト IIS上の仮想ディレクトリとして作成することも可能 デバッグ、実行に IIS 環境を直接使用 任意のファイル システム上に作成 デバッグ、実行に ASP.NET 開発サーバーを使用 ソリューションを作成 作業の開始はソリューション ファイルを開き、終了はソリュー ションを閉じる WebSite1.sln ソリューション ファイル + Default.aspx Default.aspx.vb Web.config ... Web サイト用のフォル Visual Studio 2005 による開発 3/4 ① コードエディタを表示 ② デザイナを表示 Web フォーム デザイナ ③ デザインビュー ソリューション エクスプローラ ④ ソース ビュー プロパティ ウィンドウ Web フォームのファイル構成 ユーザー インターフェイスと制御ロジックの分離 <%@ Page Language="VB" CodeFile="Page1.aspx.vb" Inherits="Page1" %> <html xmlns="http://www.w3.org/1999/xhtml" > <body> Page1.aspx <form id="form1" runat="server"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="OK" /><br /> ... </form> </body> </html> Partial Class Page1 Inherits System.Web.UI.Page Protected Sub Button1_Click( ... ) Handles Button1.Click Label1.Text = TextBox1.Text + " さん、こんにちは" End Sub End Class Page1.aspx.vb アジェンダ ASP.NET の基礎 基本的な環境、Visual Studio .NET での開発 サーバー コントロール 基礎、サーバー イベント処理、ビュー ステート セッション管理 認証 (authentication) と承認 (authorization) ASP.NET サーバー コントロール ASP.NETサーバーコントロールとは ? サーバー上で実行される Webフォームの構成部品 画面を構成する HTMLをカプセル化 適切な HTMLを自動的に出力 ほとんど HTMLを意識せず、コード上はオブジェクトとして操作できる サーバイベント処理(後述) ビューステートの自動的な管理(後述) http://srv/app/Page1.aspx ブラウザ HTML <select name="ListBox1" ...> <option value="~">~</option> <option value="~">~</option> ... Webサーバー <%@ Page ... %> <asp:ListBox id="ListBox1" runat="server"></asp:ListBox> 実行 ListBox1.Items.Add("Tokyo"); ListBox1.Items.Add("Nagoya"); ListBox1.Items.Add("Osaka"); サーバーイベント処理 サーバーイベント処理とは ? ブラウザで起きたイベントはサーバーサイドで処理 ブラウザ上は HTMLベースの Webページ イベントハンドラはサーバー上のコードに実装 ポストバック イベントとも呼ばれる サーバーへのイベント通知は、同一ページへのポスト(HTTP-POST) ブラウザ Webサーバー URL欄で指定 <%@ Page ... %> <asp:Button id="Button1" runat="server"></asp:Button> private void Button1_Click(...) { //OKボタンが押されたら実行 ポストバック HTML 実行 } ビューステートとは ビューステートとは ? サーバー コントロールの状態を自動的に管理する仕組み 隠しフィールドを利用してブラウザ上の HTML内に状態を保持 自動的にラウンドトリップする プログラマが任意のデータを格納できる ステート Dim n As Integer n = CInt(Label1.Text) n = n + 1 Label1.Text = CStr(n) ステート ラベル表示、色、フォントサイズ、etc ... <input type="hidden" name="__VIEWSTATE" value= ~ Webサーバー アジェンダ Webアプリケーション開発:ASP.NET の基礎 基本的な環境、Visual Studio .NET での開発 サーバー コントロール 基礎、サーバー イベント処理、ビュー ステート セッション管理 認証 (authentication) と承認 (authorization) セッション セッションとは? 一人のユーザーがサーバーにアクセスするときの連続的な操 作の管理単位 ASP.NETのおけるセッション Cookie内、またはクエリ文字列に、一意のセッションIDを送り、 同一ユーザーセッションを識別 Pageクラスの Sessionプロパティでセッション単位の状態管理 が可能 セッションID Cookie 同一セッションにおける HTTP要求であることを ASP.NET は認識する Webサーバー セッションID Cookie アジェンダ Webアプリケーション開発:ASP.NET の基礎 基本的な環境、Visual Studio .NET での開発 サーバー コントロール 基礎、サーバー イベント処理、ビュー ステート セッション管理 認証 (authentication) と承認 (authorization) ASP.NETセキュリティの位置付け ASP.NETセキュリティの位置付け ブラウザ 認証(匿名、基本、Windows、etc...) IPなどの制限、ポート番号、SSL、etc... Webサーバー IIS ASP.NETにアクセスるすには、 IISを通過する必要がある ISAPI Dll ASP.NET .NET Framework 共通言語ランタイム 認証(Windows、Passport、フォーム) 独自の承認(アクセス制御) コード アクセス セキュリティ ロール ベース セキュリティ フォーム認証 (続き) ~ VS2005 Login コントロールの特徴 フォーム認証のログインで使用する標準的な UI Visual Studio 2005 ではドラッグ アンド ドロップして貼り付けるだけ 認証ロジックも実装 ユーザー検証やログインに関連する処理のコードは不要 カスタマイズ可能な UI と振る舞い <%@ Page Theme="BasicBlue" %> <html> <body> <form runat="server"> <asp:Login RunAt="server" /> </form> </body> </html> フォーム認証 (続き) ~ VS2005 Web サイト管理ツールによる管理 認証モードの指定 ユーザー情報の管理、etc... URL承認の構成 <authorization>要素 認証手続きよりも後のセキュリティ評価過程 特定のURL (フォルダ、ページ)についてアクセスを許可、拒否 できる <configuration> <system.web> <authorization> <allow users="taro, jiro, redmond\goro" /> <allow roles="managers" /> <deny users="*" /> </authorization> </system.web> <location path="staff"> <!--特定フォルダへの保護 --> <system.web> <authorization> <allow users="admin" /> <deny users="*" /> </authorization> </system.web> </location> </configuration> Next Step !!! ASP.NET 2.0 の新機能 「データ ソース コントロール」による新しいデータ連結 「テーマ」と「スキン」による新しいユーザー インターフェイス 「Login コントロール」等、関連する新しいコントロール 「メンバシップ サービス」による新しいユーザー管理 「ロール管理サービス」による新しいロール管理 「プロファイル」による新しい個人環境設定の管理 「プロバイダ モデル」による保存用ストレージの拡張 「サイト ナビゲーション」機能によるメニューの新しい構築方法 「Web パーツ」用フレームワークの標準装備 「クロス ページ ポスティング」 各コントロールの機能強化 etc...
© Copyright 2025 ExpyDoc