おせわになります。
Visualstudio 2005 のASP.NET VB でWEBサイトを作成しております。
ASP.NET で ログインコントロールを使って、認証ページを作っているのですが。
ID
PASSWORD
この2つのIDをログインコントロール内で、使用しているのは分かるのですが、
このIDに加え
ID
名前
PASSWORD
という3つのデータによって、ログイン制御を行いたいと考えております。
ログインコントロール内で、テーブルを追加して、「名前」を増やした所、
このIDをVB.NET側で、受け取れません。
ASP.NET 側の ログインコントロールのソースは
/////// ここからが問題の箇所 /////////////
<tr>
<td align="right" style="height: 24px; width: 149px;">
<asp:Label ID="Label2" runat="server" AssociatedControlID="USERID">ID:
</asp:Label></td>
<td style="height: 24px; width: 312px;">
<asp:TextBox ID="USERID" runat="server" MaxLength="5" OnTextChanged="USERID_TextChanged"
Width="152px">
</asp:TextBox>
<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="USERID"
ErrorMessage="ユーザーIDは5文字以下にしてください。" ToolTip="ユーザーIDは10文字以下にしてください" Type="String"
ValidationGroup="Login1">*</asp:RangeValidator>
</td>
</tr>
/////// ここまでが問題の箇所 ////////////
/////// ここからは通常に起動 /////////////
<tr>
<td align="right" style="height: 24px; width: 149px;">
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">氏名(カナ):</asp:Label></td>
<td style="height: 24px; width: 312px;">
<asp:TextBox ID="UserName" runat="server" Width="152px" OnTextChanged="UserName_TextChanged" MaxLength="10">
</asp:TextBox>
<asp:RangeValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
ErrorMessage="ユーザー名は10文字以下にしてください。" Type ="String" ToolTip="ユーザー名は10文字以下にしてください" ValidationGroup="Login1">
*</asp:RangeValidator>
</td>
</tr>
<tr>
<td align="right" style="height: 29px; width: 149px;">
<asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">パスワード:
</asp:Label>
</td>
<td style="width: 312px; height: 29px;">
<asp:TextBox ID="Password" runat="server" TextMode="Password" Width="152px">
</asp:TextBox>
<asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"
ErrorMessage="パスワードが必要です。" ToolTip="パスワードが必要です。" ValidationGroup="Login1">
*
</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="center" colspan="2" style="color: red">
<asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
</td>
</tr>
VB.NET 側では以下のスクリプトで指定しています。
Protected Sub LoginButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Login1.LoggedIn
////////// 受け取れない //////////////////
Dim strID As String = Login1.UserID.ToString
////////// 受け取れる //////////////////
Dim strID As String = Login1.UserName.ToString
////////// 受け取れる //////////////////
Dim strID As String = Login1.Password.ToString
このように、LOGIN コントロールに UserIDを追加できません。
よって、session などに、 UserID のVALUE を受け取れるようにしたいのですが、
asp.net側の 設定はどのようにしたらよろしいのでしょうか。
ログインコントロールは あきらめて、通常の独自の認証システムを作るべきですかね。
ログインコントロールに 通常のテキストボックスとして、追加はできないものでしょうか。
どなたかご存知の方、いらっしゃいましたら、教えていただけますと幸いです。
どうぞ宜しくお願いいたします。
No.1ベストアンサー
- 回答日時:
もともとのLoginクラスに UserIDなど独自に追加したプロパティが無いためです
独自にテンプレート化して追加したのであれば LoginコントロールのFindControlなどを使ってそのコントロールを特定しましょう
今回の例示なら
strID = CType( Login1.FindControl("USERID"), TextBox ).Text
といった具合です
もともとの UserNameやPasswordといったIDのコントロールを削除していないにもかかわらず Login1のプロパティで取得できないとなるとこのコードだけでは判別不能ですね
redfox63様
ありがとうございます。
CType( Login1.FindControl("USERID"), TextBox ).Text
これで、望んでいた値を取得する事ができました。
しっかりと、LOGINコントロール に加わっていたのですね。
自分の方では、ログインコントロールの使用をあきらめて、
通常のテーブル、ボタンで処理を行った後に、
ログインの成否判定でのみ、ログインを使うという事を
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, False)
してみたのですが、これでも成否判定をしてくれまして、
結構、ユーザー側の要求に柔軟に応えてくれるなぁと、
感心しておりました。おかげさまで、LOGINコントロールを
使用した仕様で作成できそうです。
CType等の働きや、追加したコントロールについての制御が勉強
不足でまだ疎い状況なので、再度勉強したいと思います。
大変、助かりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GridViewからテンプレートフィ...
-
<ASP.NET>DataGridでOnSelected...
-
GridView リンク
-
時々処理が呼ばれない
-
ASP.NET 2.0 GridViewの更新ボ...
-
「a.v.v」「iiMK」の...
-
Response.Redirectで引数2つの...
-
ASP.NET C# ローカルのパスが呼...
-
C# try-catch でcatchに飛ばす方法
-
エクセルVBA 宣言Dimの場所
-
ASP内で他のASPファイルを読み...
-
FileCopy時のエラー
-
VB6でRDOに接続できない
-
Outlookで添付ファイルの有無を...
-
C# のプログラミングについて
-
CreateObjectの同時実行時について
-
oracleを利用できません。(glob...
-
[VB6.0] Inet OpenURLのエラー検出
-
EXCEL VBA API宣言でコンパイル...
-
C++でSQLServer2008に接続
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ページの更新内容が反映されない。
-
隠しフィールドをVBScriptでの...
-
Response.Redirectで引数2つの...
-
GridViewからテンプレートフィ...
-
SqlDataSource SelectCommand ...
-
Tableを動的に増やしたい。
-
「a.v.v」「iiMK」の...
-
ASPでpingを飛ばす事は、可能で...
-
GridView表示の高速化
-
【ASP.NET】 ログインコントロ...
-
ASPからASPを呼び出す方法
-
Panelを重ねる方法
-
asp.net でのドロップダウンリ...
-
時々処理が呼ばれない
-
<ASP.NET>DataGridでOnSelected...
-
ASPへのデータの受け渡しについて
-
ビデオテープに貼るラベルシー...
-
北原化粧品をお使いの方へ
-
UpdatePanel と GridViewについ...
-
javascriptでRadioButton操作
おすすめ情報