【ASP.NET】 ログインコントロールにおいて
おせわになります。
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側の 設定はどのようにしたらよろしいのでしょうか。
ログインコントロールは あきらめて、通常の独自の認証システムを作るべきですかね。
ログインコントロールに 通常のテキストボックスとして、追加はできないものでしょうか。
どなたかご存知の方、いらっしゃいましたら、教えていただけますと幸いです。
どうぞ宜しくお願いいたします。
お礼
ありがとうございます。そういうロール毎の認証を意図してました。 英語版ですが、aspnetdbの資料がMSDNで見つかったので見てみます。