单击输入类型提交时的登录提示

时间:2012-01-09 14:11:10

标签: javascript asp.net vb.net passwords

我有一个带有<input type="submit">的asp.net页面,用于按钮和vb代码隐藏。

<input runat="server" id="review" clientidmode="Static"
                        type="submit" value="review" name="submit" />

我添加了什么代码,以便创建一个必需的登录提示弹出框,询问用户名和密码。我还想确保当用户输入密码时,密码字段不会显示特定字符​​。

2 个答案:

答案 0 :(得分:0)

如果您使用的是ASP.NET,我认为您可能会使用<asp:Login />组件。我个人更喜欢避免使用ASP.NET组件,因为它们生成了所有免费的HTML,并且喜欢手动编写所有这些,但对于初学者来说,它可能是让你进行设置的最快选择。

请参阅first example in this page

   <form id="form1" runat="server">
        <asp:Login id="Login1" runat="server" 
            UserNameLabelText="E-mail address:" 
            OnLoggingIn="OnLoggingIn"
            OnLoginError="OnLoginError" >
        </asp:Login>

    </form>

您的代码隐藏文本如下所示:

Sub OnLoggingIn(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LoginCancelEventArgs)
    If Not IsValidUser(Login1.UserName, Login1.Password) Then
        Login1.InstructionText = "Authentication Failed."
        e.Cancel = True
    Else
        Login1.InstructionText = String.Empty
    End If
End Sub

在主页面上,您可以使用window.open()创建一个弹出框,如下所示:

 <a href="javascript:;" 
     onclick="window.open('myloginpage.aspx', 'login', 'width=600,height=400,scrollbars=no')"/>

或者,如果您想使用输入按钮,则代码相同,但使用INPUT代替A代码。

 <input runat="server" id="review" clientidmode="Static"
              type="button" value="review" name="submit"
              OnClientClick="window.open('myloginpage.aspx', 'login', 'width=600,height=400,scrollbars=no')" />

请记住,现在大多数浏览器都包含弹出窗口拦截器,这可能会让您的用户难以真正到达登录页面。

答案 1 :(得分:0)

我认为您的设计(收集提交时的登录详细信息)会给您带来几个重大障碍:

  • 如果用户名和密码失败,如何取消登录提示?

  • 如何收集输入的用户名和密码并将其传递回原始页面?

  • 如果用户忘记了凭据并需要重置凭据或需要首次注册,那么信息如何正确返回提交流程?

通过用户名和密码保护您的网站进入比在提交过程中尝试收集此信息要容易得多。

Microsoft在本MSDN文章中详细介绍了实施此过程所需的确切步骤:How to: Implement Simple Forms Authentication

但是,如果这不适合您的情况,那么我会建议一些与jQuery Login Dialog一致的内容。