- PR -

認証ページ存在フォルダ外のページでTextBoxの値が取得できない。

1
投稿者投稿内容
ニセイタ
常連さん
会議室デビュー日: 2009/02/27
投稿数: 24
投稿日時: 2009-03-09 19:38
ASP.NET + AJAX で開発しております。
(VS2005)

WEBの構成として、

MASTERPAGE.MASTER
TESTフォルダー
 TEST下
LOGIN.aspx
TOP.aspx
DETAIL.aspx
KEYWORD.aspx

という構造のページを作成しておりまして、
LOGINページにキーワード確認ページ KEYWORD.aspx
へのリンクを設けて、KEYWORDページから、パスワード忘却時の
メール発行という仕組みでシステムを作成しようと思っていおります。

LOGINページ等で、画面のTEXTBOX入力値を取得する場合は、
画面の値を直接指定すれば、値を取得できたのですが、
KEYWORD.aspx で 入力したキーワードを取得する為、テキストボックス
に入力した値を取得しようとしておりますが、値を取得できません。

取得タイミングは、NEXTボタンクリックタイミングです。

Protected Sub NextButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles NextButton.Click
Dim strID As String = Me.KEYWORD.Text '取得できない
    Dim strID2 As String = KEYWORD.Text '取得できない
    Dim strID3 As String = FINDCONTROL("KEYWORD",0).Text '取得できない
    Dim strID2 As String = KEYWORD.Text '取得できない

という有様です。
また、他の画面項目の値も全く取得できません。

LblErrorMSG.Text = ("キーワードを入力して下さい。")
KEYWORD.Focus()


また、この命令は、出力できて、
それぞれ、エラーメッセージ出力後に、キーワードのテキストボックスに
フォーカスが、当たります。

ASP側
<td align="left" colspan="2" style="width: 99px; height: 2px">
<asp:TextBox ID="Keyword" runat="server" Height="24px"
MaxLength="20" TextMode="Keyword" Width="296px"></asp:TextBox></td>


ファイルの位置が関係しているのでしょうか。
ログイン認証前に、操作できるページが必要なので、是非、心当たりの
ある方、ご教授ください。





べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2009-03-09 23:05
切り分けが必要です。マスターページやAJAXは影響していますか?まずこれらをはずしてみては?

引用:
LOGINページにキーワード確認ページ KEYWORD.aspx
へのリンクを設けて、KEYWORDページから、パスワード忘却時の
メール発行という仕組みでシステムを作成しようと思っていおります。

LoginコントロールやPasswordRecoveryコントロールは使っていないという認識でよいですか?

引用:
Protected Sub NextButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles NextButton.Click
Dim strID As String = Me.KEYWORD.Text '取得できない
    Dim strID2 As String = KEYWORD.Text '取得できない
    Dim strID3 As String = FINDCONTROL("KEYWORD",0).Text '取得できない
    Dim strID2 As String = KEYWORD.Text '取得できない

取得できないとは、空文字が取得されるということですか?

引用:
ASP側
<td align="left" colspan="2" style="width: 99px; height: 2px">
<asp:TextBox ID="Keyword" runat="server" Height="24px"
MaxLength="20" TextMode="Keyword" Width="296px"></asp:TextBox></td>

これはKEYWORD.aspxに書いてあるという認識でいいですよね?

引用:
ファイルの位置が関係しているのでしょうか。

問題のあるページを問題のないページの位置と同じにしてみては?
LOGIN.aspxでは正常で、KEYWORD.aspxとLOGIN.aspxは同じ位置なんですか?であればあまり関係ない?

引用:
ログイン認証前に、操作できるページが必要なので、是非、心当たりの
ある方、ご教授ください。

認証は実装済みなんですか?Web.configに権限などを設定しています?
しているならまずはずしてみて、うまくいけば認証が原因という切り分けになりますよね。

なんでしょうね。Page_Loadで何かしてませんかね?
ニセイタ
常連さん
会議室デビュー日: 2009/02/27
投稿数: 24
投稿日時: 2009-03-10 09:18
>べる様

ご返答ありがとうございます。


引用:
切り分けが必要です。マスターページやAJAXは影響していますか?まずこれらをはずしてみては?



確かに…そうですね。動作確認の為に、外して、試してみます。…@


引用:
LoginコントロールやPasswordRecoveryコントロールは使っていないという認識でよいですか?



ログインには、Loginコントロールを使っております。
PasswordRecoveryコントロールは使っておりません。
ちょっと、実装上PasswordRecoveryとは、違う働きでしたので…

引用:
取得できないとは、空文字が取得されるということですか?



はい、そうなんです。

引用:
これはKEYWORD.aspxに書いてあるという認識でいいですよね?



はい、そちらの認識でOKです。ファイル名を明記すべきでした。申し訳ありません。


引用:
問題のあるページを問題のないページの位置と同じにしてみては?


試してみます。…A


引用:
LOGIN.aspxでは正常で、KEYWORD.aspxとLOGIN.aspxは同じ位置なんですか?であればあまり関係ない?


大変申し訳ありません。前後で、読み取っていただいて、回答していただいて
本当、ありがとうございました。当方の記述が間違っておりました。
KEYWORD.aspx は LOGIN.aspx と同じフォルダには置いておりませんでした。
TESTフォルダ外においていたのです。(認証制御をフォルダ内限定にしたかった為)
WEB.configの制御外となるですかね。
その、外のWEB.configもチェックした方がよい気がしてまいりました。

引用:
認証は実装済みなんですか?Web.configに権限などを設定しています?
しているならまずはずしてみて、うまくいけば認証が原因という切り分けになりますよね。



はい、認証は実装済みです。Web.configに権限は、現在はallows="*"
でデバッグしておりました。
deny users ="?" で運用予定です。

引用:
なんでしょうね。Page_Loadで何かしてませんかね?


再調査してみます。…B

3点、再確認してみます。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2009-03-10 09:54
ページの表示ができているなら認証の設定等はほとんど関係ないと思います。
マスターページとかもたぶん問題ない。
AJAXは、、、大丈夫だと思うけど、それもふくめてKEYWORD.aspxに記述されているプログラムが知りたいところかな。

あと、ページのTrace設定をオンにして、ポストバック時にきちんと入力したデータが投げられているかどうかを確認してみてもいいかもしれません。
ニセイタ
常連さん
会議室デビュー日: 2009/02/27
投稿数: 24
投稿日時: 2009-03-10 10:20
>べる様

申し訳ありません。
Loadイベントで、項目クリア処理が入っておりました。

認証前でも、Login認証制御フォルダ外でしたら、想定どおりフォルダ外の
web.configを
<authorization>
<allow users="*"/>
</authorization>
にすることで、アクセスできました。
Masterページ内の値も取得することができました。

全く、初歩的なミスで申し訳ありません。
切り分けて、コードをチェックしていく技法を、まず、再度心がけます。

ありがとうございました。
ニセイタ
常連さん
会議室デビュー日: 2009/02/27
投稿数: 24
投稿日時: 2009-03-10 21:31
>どっとねっとふぁん様
ご返答、ありがとうございます。
ご返事遅くなり申し訳ありません。レスと前後してしまいました。

引用:

ページの表示ができているなら認証の設定等はほとんど関係ないと思います。
マスターページとかもたぶん問題ない。



その通りでした。

引用:

あと、ページのTrace設定をオンにして、ポストバック時にきちんと入力したデータが投げられているかどうかを確認してみてもいいかもしれません。



ページのTrace設定をオンにして、ポストバック時のデータの流れを監視
することができるのですね。
いつも、ポストバック = ロードイベント と考えておりました。
ご指導ありがとうございます。
1

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