おせわになります。
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Response.Redirectで引数2つの...
-
SqlDataSource SelectCommand ...
-
GridViewからテンプレートフィ...
-
asp.net でのドロップダウンリ...
-
ページの更新内容が反映されない。
-
ASPへのデータの受け渡しについて
-
C# try-catch でcatchに飛ばす方法
-
FileCopy時のエラー
-
CAsyncSocket::Create()がエラ
-
ソケット通信で同時受信の制限?
-
JavaScriptで取得した値をASPで...
-
ネットワーク上のPCのIPとホス...
-
EXECLマクロでshapeがグルーフ...
-
Outlookで添付ファイルの有無を...
-
このページの状態情報は無効で...
-
エラー 'ASP 0115' について
-
ASP.NET GRID VIEWの画像表示
-
winsock通信時エラーの回避
-
ASP内で他のASPファイルを読み...
-
CentOS6でyumコマンドやrpmコマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
隠しフィールドをVBScriptでの...
-
Response.Redirectで引数2つの...
-
GridViewからテンプレートフィ...
-
Tableを動的に増やしたい。
-
GridView表示の高速化
-
Panelを重ねる方法
-
【ASP.NET】 ログインコントロ...
-
asp.net でのドロップダウンリ...
-
ASPからASPを呼び出す方法
-
ページの更新内容が反映されない。
-
クリッカブルマップを利用したA...
-
ASPでpingを飛ばす事は、可能で...
-
ASPへのデータの受け渡しについて
-
SqlDataSource SelectCommand ...
-
AutoPostBackにしているが、う...
-
ASP.NETの拡張子はなぜ「asp」...
-
C# try-catch でcatchに飛ばす方法
-
FileCopy時のエラー
-
エクセルVBA 宣言Dimの場所
-
エラー 'ASP 0115' について
おすすめ情報