432 views(since 2013/10/08)

Office 用アプリ(Apps for Office)でデモアプリを作る -ログイン編(コンテンツアプリ)-

はじめに

「Office用アプリ(Excel)」から、「Webサーバ(IIS)」にアクセス時のセッション情報の扱いについて調査しました。 下記の図のように、Book内の複数の「オフィス用アプリ」から「Webサーバ(IIS)」にアクセス時でも同一セッションを使用していることが確認できました。 ※Bookが異なる場合は別のセッションになります。

apps_for_office_session_01

手順

とりあえずシンプルなログイン機能を実装して、 Session 情報が Book 間、Sheet 間で共有されるか否か検証してみた。

前回の内容

Office 用アプリ(Apps for Office)でデモアプリを作る -Webサービス編(コンテンツアプリ)-

2-1) ASP.net のフォーム認証機能を実装する

 

ASP.net のフォーム認証のように、コンテンツに表示したい。

apps_for_office_login_01

ASP.net のフォーム認証を試したのだが、何故か「×」が表示されたw

apps_for_office_login

2-2) ログイン(Login)機能を実装する

前回のプロジェクトに以下の項目を追加します。 1. 「追加」 → 「新しい項目」 → 「Visual C#」 → 「Web」 → 「グローバル アプリケーション クラス」を選択 global.asax 2. 「追加」 → 「新しい項目」 → 「Visual C#」 → 「Web」 → 「Web フォーム」を選択 login.aspx こんなかんじになります。

apps_for_office_session_05

コードはセキュリティの関係上、公開できませんがログインしたユーザー情報を Session に格納するといったシンプルなコードにしました。 デバック(F5)実行すると、コンテンツにログイン(login.aspx)が表示される。 Session 情報が無い場合はこのようになるように、global.asax に定義しています。

apps_for_office_session_02

ログインすると、コンテンツ内が Test.aspx に変わり、Session にKeep させたユーザー情報が表示されたのがわかる。

apps_for_office_session_03

同一 Book 内で、異なる Sheet へ同一のコンテンツを配置したら Session 情報がどうなるのか検証した。 同じSession 情報が表示されたので、同一 Session であることがわかる。 apps_for_office_session_03b

同一 Book 内であれば、Session 情報は共有できるようだ。 今度は、新規に別の Book を作成して、同じコンテンツを配置して Session 情報がどうなるのか検証した。 何も表示されていないので、異なるSession であることがわかる。

apps_for_office_session_04

異なる Book 間では、Session は共有できないようだ。 ログインして表示の切り替え等も確認できたので、 次回は、DBへ接続してデータを抽出してみます。

Filed Under: Office Add-ins

Tags:

About the Author

Leave a Reply




If you want a picture to show with your comment, go get a Gravatar.