asp.net 2.0中对logincontrol的小改进

在asp.net 2.0中,有了登陆控件框logincontrol了,十分方便,但有的时候,可能要对
logincontrol框进行一些改进,比如如果需要在用户名一栏,以dropdownlist的方式给用户选择
要登陆的用户名或者角色的话,则有的时候十分方便。
     但你直接想去掉logincontrol中的用户名输入框时不行的,会出错,其实可以把这个用户名输入框
的visible属性设置为false就可以了,可以再加一个下拉框了,例子如下
<td align="right">
    <asp:Label ID="UserNameLabel" runat="server"
          AssociatedControlID="UserName">User Name:</asp:Label>
  </td>
  <td>
    <asp:TextBox ID="UserName" runat="server" Visible="false"></asp:TextBox>
    <asp:DropDownList ID="DropDownList1" runat="server" />
  </td>
然后,如果要用asp.net 2.0的membership功能的话(其实不觉得有啥好用的),可以将dropdonwlist与一个
objectdatasource绑定,如下
                      <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="ObjectDataSource1" />
  <asp:ObjectDataSource ID="ObjectDataSource1" DataObjectTypeName="System.Web.Security.MembershipUser" runat="server" SelectMethod="GetAllUsers" TypeName="System.Web.Security.Membership"></asp:ObjectDataSource>

如果要得到用户在下拉框中选择的用户名,很简单,
protected void Login1_LoggingIn(object sender, LoginCancelEventArgs e)
  {
    Login1.UserName = ((DropDownList)Login1.FindControl("DropDownList1")).SelectedValue;
  }
在logginIn事件中捕捉就可以了

你可能感兴趣的:(Web,.net,Security,asp.net,asp)