C# 如何手动将用户登录到MembershipProvider?

C# 如何手动将用户登录到MembershipProvider?,c#,asp.net,login,asp.net-membership,C#,Asp.net,Login,Asp.net Membership,我正在尝试在asp.net中编写自己的自定义MembershipProvider,我想打开自己的登录页面。我们在登录时做了一些非常特殊的事情,所以我们不能使用默认的登录控件,所以我需要一种方法来手动登录用户 到目前为止,我还没有找到任何关于如何编写您自己的登录控件的信息,所以我在这里想知道如何通过会员资格提供商手动登录用户 我试过了 Membership.ValidateUser("user", "pass"); 虽然它确实调用了我的自定义成员资格提供程序上的ValidateUser(),并返

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

到目前为止,我还没有找到任何关于如何编写您自己的登录控件的信息,所以我在这里想知道如何通过
会员资格提供商
手动登录用户

我试过了

Membership.ValidateUser("user", "pass");
虽然它确实调用了我的自定义
成员资格提供程序
上的
ValidateUser()
,并返回true,但它实际上并没有让我登录

顺便说一句,我对所有的
会员资格提供商
都是新手,所以如果我的想法不对,请随时告诉我

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

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

上面的代码是从一个自定义成员资格提供者的工作代码中复制的,这种情况与您的情况类似,我们需要在登录时做大量额外的工作。(重新部署敏感操作以保护无辜者。)

会员资格提供商仅存储有关用户的数据,实际登录和会话处理由AuthenticationProvider处理。例如,如果您正在使用forms(=基于cookie的)身份验证、签出和该类中的其他相关方法。

为便于将来参考,如果您查看具有以下内容的部件内部,则可以签出任何组件的内部代码:

有一个免费的版本,将做你需要的一切


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

ahh感谢您为我解释分离!这是我真正需要的是的,AuthenticationProvider甚至不在我的雷达上,这将帮助我记住内置表单身份验证提供程序与自定义成员资格提供程序配合得非常好,除非你需要做一些非常特殊的事情,否则它应该“正常工作”。太棒了,谢谢。虽然我很欣赏它的工作原理,但我喜欢了解每件事是如何工作和结合在一起的,这样我就可以了解正在发生的每件事。另外,这种方式更容易向管理层解释,我能理解。我发现自己现在越来越多地使用Reflector查看.NET的源代码,只是因为我想知道它们是如何工作的。RedirectFromLoginPage很好,因为它可以将用户重定向到最初请求的页面,并让用户登录