繁体   English   中英

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

[英]How do I manually log a user in with a MembershipProvider?

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

到目前为止,我还没有找到任何关于如何编写自己的登录控件的内容,所以我在这里,想知道如何通过MembershipProvider手动登录用户。

我试过了

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

虽然它确实在我的自定义MembershipProvider上调用ValidateUser() ,并且它确实返回true,但它实际上并没有登录我。

顺便说一句,我对整个MembershipProvider东西都相当新,所以如果我的波长不合适,请随时告诉我。

if (Membership.ValidateUser(Username.Text, Password.Text))
{

   FormsAuthentication.SetAuthCookie(Username.Text, false);
   FormsAuthentication.RedirectFromLoginPage(Username.Text, false);
}
else
{
// do something else
}

以上内容是在工作代码中使用自定义成员资格提供程序复制的,就像您的情况一样,我们需要在登录时做一些额外的工作。 (为了保护无辜的人,我们进行了敏感的行动。)

MembershipProvider仅存储有关用户的数据,实际登录和会话处理由AuthenticationProvider处理。 例如,如果您正在使用表单(基于cookie)身份验证,请查看FormsAuthentication.SetAuthCookie以及该类中的其他相关方法。

为了将来参考,如果您使用Reflector查看装配体内部,可以查看任何组件的内部代码:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM