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

BCS*_*BCS 10 asp.net asp.net-membership login

这是这个问题的一个分支.

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

在我的情况下,我不需要MembershipProvider(我认为),因为我的身份验证情况是微不足道的(一个用户,一个密码).

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

Jus*_*gey 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>
Run Code Online (Sandbox Code Playgroud)

在Code Behind中

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
Run Code Online (Sandbox Code Playgroud)

C#

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

  • 此外,要强制用户转到登录页面,请使用表单身份验证. (2认同)
  • 在你的web.config中你否认匿名用户?<authorization> <deny users ="?"/> <allow users ="*"/> </ authorization>,这里是我的身份验证设置,仅供参考.<authentication mode ="Forms"> <forms loginUrl ="login.aspx"protection ="All"path ="/"timeout ="30"> </ forms> </ authentication> (2认同)