- PR -

フォーム認証とフレーム

1
投稿者投稿内容
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2004-01-19 17:15
ASP.NET VB.NET 共に初心者です。 ご教授の程、よろしくお願いします。

VS.NETを使用して、フォーム認証を使ったページを作成しています。
ログインページはフレーム無しのページで、認証されるとフレームありのページへ遷移させたいのです。
が、フレームセットのデザインを作成している時点から、SRC=”XXXXX.ASPX”と指定したデザインが
表示されずに、LOGIN.ASPXの内容が表示されます。 
SRCプロパティに指定しないFRAMEは無表示です。

過去のスレッドにて、下記回答を見つけました
1、フレームのページをASPXにする
2、Target="_parent"にする
    見つけたのですが、、、、二つとも同実現するのか、よく解りません

1の場合、追加の画面にてフレームセットを選んだ段階で、HTMLに変わってしまうため
「名前の変更」にて、強引にASPXに変更し、1行目に
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="defalt.aspx.vb" Inherits="xxxx.defalt"%>   と追加すると
Inherits="xxxx.defalt" 指定部の xxxx.defaltが読み込めませんというエラーになります

2の場合、
  <authentication mode="Forms">
<forms loginUrl="login.aspx" />
</authentication>

  <authentication mode="Forms">
<forms loginUrl="login.aspx" target="_parent" />
</authentication>
としてみましたが  エラーになります

なんとか、フレームなしのログイン画面から、
FormsAuthentication.RedirectFromLoginPage でリダイレクト先の
DEFALT.aspx に遷移させ、DEFALT.aspx をフレームありのページとして
作成できませんでしょうか???
フレームありのページは左にメニュー、右にコンテンツ画面です。

もしくは、フレームセットの右下にて、ログインでも良いのですが
この場合、フォーム認証できるのでしょうか?
WEB.CONFIG の指定の仕方は
  <authentication mode="Forms">
<forms loginUrl="login.aspx" />
</authentication>

で構わないのでしょうか??

VS.NETを使用したWEBアプリの実践例の良い本があったら、教えてください。

よろしくお願いします
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-01-19 18:01
>が、フレームセットのデザインを作成している時点から、SRC=”XXXXX.ASPX”と>指定したデザインが
>表示されずに、LOGIN.ASPXの内容が表示されます。 

Web.configの認証部分をコメントアウト(認証しない)にすると正しく表示されると思います。

---------------------------------------------------------------------
(追記)
 くわしい理由は↓のJittaさん書き込みの通りです。
---------------------------------------------------------------------

>DEFALT.aspx に遷移させ、DEFALT.aspx をフレームありのページとして
>作成できませんでしょうか???

あまりかっこよくないのですが、DEFALT.aspxのPage_Loadに

Response.Redirect("menu.htm", true);
(menu.htmがフレーム)
と記述してみたらどうでしょうか?



[ メッセージ編集済み 編集者: ゆうじゅん 編集日時 2004-01-19 18:06 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-01-19 18:01
引用:

七さんの書き込み (2004-01-19 17:15) より:

VS.NETを使用して、フォーム認証を使ったページを作成しています。
ログインページはフレーム無しのページで、認証されるとフレームありのページへ遷移させたいのです。
が、フレームセットのデザインを作成している時点から、SRC=”XXXXX.ASPX”と指定したデザインが
表示されずに、LOGIN.ASPXの内容が表示されます。 
SRCプロパティに指定しないFRAMEは無表示です。


 だって、そのページ(xxxxx.aspx)にアクセスするためには認証が必要なんですから…期待通りにできあがっていると思いますよ。

 フレームではない、xxxxx.aspx単体をデザイナで表示すれば、Okでしょ?

 フレームセットのページをデザインする場合、デザインするのは「xxxx.htm」のファイルで、「xxxxx.aspx」のファイルではないですよね。「xxxxx.aspx」のファイルは、実際にウェブサーバから読み込まれて表示されているのです。そこで「認証されていない」から、ログインページが表示されています。


[追加]
なんか、とんでもない勘違いをしているような気がしてきた。

えっと、「認証していない場合はログインページが表示されるようにしているのだから、フレームセットのあるyyyy.htmが表示されるのはおかしい。フレームセットのあるyyyy.htmは読み込まれず(これを読み込もうとして認証されていないのだから)、ログインページがフレームなしに表示されるべき」ということでしょうか?

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-01-19 18:30 ]
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2004-01-19 18:47
ゆうじゅんさん Jittaさん ありがとうございました

  Jittaさんの書込 引用
    だって、そのページ(xxxxx.aspx)にアクセスするためには認証が必要なんですら…    期待通りにできあがっていると思いますよ。

そうですよねー すべて認証されたページにするために、必死にコーディングしてるのに!
デザイナ上で表示されないからと、疑心暗鬼になってしまってました。
純粋に、フレームセットxxxxx.htm を作成し、名前の変更でxxxxx.aspx に変更するだけで
うまく実現できました  ありがとうございました

  ゆうじゅんさんの書込 引用
      DEFALT.aspxのPage_Loadに
        Response.Redirect("menu.htm", true);
            (menu.htmがフレーム)
      と記述してみたらどうでしょうか?

VB.NET で下記のようにコーディングしてみました
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As                  System.EventArgs) Handles MyBase.Load
Response.Redirect("menu.htm", True)
End Sub
login.aspx から defalt.aspx にRedirectされ defalt.aspxが表示されても
Page_Loadに入ってこないようです 何か、まだ間違っているのでしょう

まだまだ、精進いたします
今後とも、よろしくお願いいたします

ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-01-20 09:39
遅くなって申し訳ありません。

web.configを
<authentication mode="Forms">
<forms loginUrl="login.aspx" />
</authentication>

でForms認証にした上でLogin.aspxではなくdefault.aspxを直接呼び出しても
だめでしょうか?

default.aspxが読み込まれるとき、認証するためにログイン画面であるlogin.aspxが
自動的に読み込まれるはずです。

大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2004-01-21 21:05
引用:

ゆうじゅんさんの書き込み (2004-01-20 09:39) より:
遅くなって申し訳ありません。

web.configを
<authentication mode="Forms">
<forms loginUrl="login.aspx" />
</authentication>

でForms認証にした上でLogin.aspxではなくdefault.aspxを直接呼び出しても
だめでしょうか?

default.aspxが読み込まれるとき、認証するためにログイン画面であるlogin.aspxが
自動的に読み込まれるはずです。





こちらこそ、遅くなりました
重ねて、気にかけて頂きありがとうございます

WEB.CONFIG
<authentication mode="Forms">
<forms loginUrl="login.aspx" />
</authentication>

DEFALT.ASPX
Private Sub Page_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
' ページを初期化するユーザー コードをここに挿入します。
Response.Redirect("main.htm", True)
End Sub

と指定し、DEFALT.ASPX を「スタートページに設定する」と
LOGIN.ASPX は表示されませんでしたが
MENU.HTM の形で、DEFALT.ASPX
が表示されました。

ちょっと、動作確認用のPGが壊れてしまったかもしれませんので
金曜に、また確認してみます。
すみませんありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)