我建立了一个使用sqlMembershipProvider的网站,如
this page所示.
我跟着每一步.我有数据库,我修改了Web.config以使用此提供程序,使用正确的连接字符串,并将身份验证模式设置为Forms.创建了一些用户进行测试.
我创建了一个Login.aspx并将Login控件放在上面.一切正常,直到用户可以登录.
我调用Default.aspx,它被重定向到Login.aspx,我输入用户和正确的密码.没有错误信息,似乎没什么不对,但我再次看到登录表单,输入用户的登录信息.但是,如果我在浏览器中检查cookie,我可以看到具有指定名称的cookie存在.
我已经尝试自己处理这些事件并检查它们发生了什么,但没有成功.
我正在使用VS2008,文件系统中的网站,sql Express 2005来存储aspnetdb,没有角色管理,使用K-Meleon,IE7.0和Chrome进行测试.
有任何想法吗?
解决方法
我已经在您发送给我的文件中检查了代码(再次感谢您发送给我).
注意:我没有测试过这个,因为我没有安装数据库等.
但是,我很确定这是问题所在.
您需要为ASP.NET控件设置MembershipProvider属性.为它们定义:
<asp:Login ID="Login1" runat="server" MembershipProvider="MysqLMembershipProvider"> <LayoutTemplate> <!-- template code snipped for brevity --> </LayoutTemplate> </asp:Login>
和..
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" MembershipProvider="MysqLMembershipProvider"> <WizardSteps> <asp:CreateUserWizardStep runat="server" /> <asp:CompleteWizardStep runat="server" /> </WizardSteps> </asp:CreateUserWizard>
然后,它将控件绑定到具有给定名称的成员资格提供程序(您已在Web.Config中指定).
在你的解决方案中给你一个旋转,让我知道你是如何进行的.
我希望这适合你:)
编辑
我还应该补充一下,我知道你不应该这样做,因为默认的提供者设置了,但我过去遇到了这个问题..我最终将它们全部设置为手动,一切正常.