代码之家  ›  专栏  ›  技术社区  ›  Allen Rice 0x6A75616E

如何使用MembershipProvider手动登录用户?

  •  4
  • Allen Rice 0x6A75616E  · 技术社区  · 16 年前

    我在试着写我自己的习惯 MembershipProvider 在ASP.NET中,我想滚动我自己的登录页面。我们在登录时做了一些相当特殊的事情,所以我们不能使用默认的登录控件,所以我需要一种方法手动登录用户。

    到目前为止,我还没有找到任何关于如何编写自己的登录控件的信息,所以我来到这里,想知道如何通过 成员身份提供程序 .

    我试过了

    Membership.ValidateUser("user", "pass");
    

    尽管这确实需要 ValidateUser() 按我的习惯 成员身份提供程序 ,它确实返回了真的,它并没有实际登录我。

    顺便说一句,我对整体来说还比较陌生 成员身份提供程序 如果我的波长不对,请随时告诉我。

    3 回复  |  直到 8 年前
        1
  •  8
  •   Matti Virkkunen    8 年前

    成员身份提供程序只存储有关用户的数据,实际登录和会话处理由身份验证提供程序处理。例如,如果您正在使用基于表单(=cookie)的身份验证,请签出 FormsAuthentication.SetAuthCookie 以及该类中的其他相关方法。

        2
  •  11
  •   David    16 年前
    if (Membership.ValidateUser(Username.Text, Password.Text))
    {
    
       FormsAuthentication.SetAuthCookie(Username.Text, false);
       FormsAuthentication.RedirectFromLoginPage(Username.Text, false);
    }
    else
    {
    // do something else
    }
    

    上面的内容是从一个自定义成员资格提供商的工作代码中复制的,在这种情况下,我们需要在登录时做一些额外的工作。(为保护无辜,重新开展了敏感行动。)

        3
  •  1
  •   rtpHarry    16 年前

    为便于日后参考,如果使用反射镜查看组件内部,可以查看任何组件的内部代码:

    有一个免费的版本可以满足你的一切需求。

    此外,您不必创建自己的登录控件,因为登录是非常可扩展的。您可以编辑模板并处理各种事件,以使其执行您想要的操作。

    推荐文章