如何在不使用MembershipProvider的情况下使用ASP.NET登录控件?

时间:2009-07-23 22:55:40

标签: asp.net login asp.net-membership

这是this question的分支。

  • 如果我没有Login指向它,我如何使用MembershipProvider控件?
  • 我是否正确理解使用模型?
  • 在没有Login的情况下谈论使用MembershipProvider控件是否合理?
  • 是否MembershipProvider不只是用户名/密码检查?
  • 使用相同的身份验证逻辑创建自己的MembershipProvider会更合理吗?

在我的情况下,我不需要MembershipProvider(我认为),因为我的身份验证情况很简单(一个用户,一个密码)。

我部分感兴趣的是“未来证明”我的页面,部分是因为我是新手并且想知道这些东西是如何工作的。 (我倾向于通过全速运行我能找到的每个角落来了解事情:)

4 个答案:

答案 0 :(得分:23)

您可以在页面中删除asp:Login控件,然后在后面的代码中捕获Login Control的Authenticate事件。

在Authenticate事件中,检查用户输入的用户名/密码。用户名/密码是登录控件中的属性。 (LoginCtrl.UserName,LoginCtrl.Password)

如果用户名/密码正确,只需将event args Authenticated属性设置为True。

不需要会员提供者。

离。在aspx页面..

<asp:Login ID="LoginCtrl" runat="server" DestinationPageUrl="YouAreIn.aspx"></asp:Login>

在代码背后

Private Sub Log_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles LoginCtrl.Authenticate
    If LoginCtrl.UserName = "Hello" AndAlso LoginCtrl.Password = "Hello" Then
        e.Authenticated = True
    End If

C#

void MyLogin_Authenticate(object sender, AuthenticateEventArgs e)
{
    if(UserName == "Hello" && Password == "Hello")
        e.Authenticated = true;
}

答案 1 :(得分:3)

如果您没有会员服务提供商并且没有真正的安全系统可言,只需在表单上放两个框(用户名,密码)并在按钮的单击中进行测试。

登录控件对于您尝试做的事情显然有点过分了。

答案 2 :(得分:2)

答案 3 :(得分:0)

您必须创建自定义身份验证提供程序并通过web.config将其插入。 http://www.devx.com/asp/Article/29256