我设置了一个网站,使用SqlMembershipProvider编写本页面.
我跟着每一步.我有数据库,我修改了Web.config以使用此提供程序,使用正确的连接字符串,并将身份验证模式设置为Forms.创建了一些用户进行测试.
我创建了一个Login.aspx并将Login控件放在上面.一切正常,直到用户可以登录.
我调用Default.aspx,它被重定向到Login.aspx,我输入用户和正确的密码.没有错误信息,似乎没有错,但我再次看到登录表单,输入用户的登录信息.但是,如果我在浏览器中检查cookie,我会看到存在具有指定名称的cookie.
我已经尝试自己处理这些事件并检查它们发生了什么,但没有成功.
我正在使用VS2008,文件系统中的网站,SQL Express 2005存储aspnetdb,没有角色管理,经过K-Meleon,IE7.0和Chrome测试.
有任何想法吗?
解决方案:在与Rob进行一些邮寄后,我们有了理想的解决方案,现在已经接受了答案.
我不喜欢给出的黑客.
我有一个网站使用名为" login.aspx " 的登录表单,一切正常.我认为我们应该找到答案而不是黑客.因为所有[推测]测试的网站都有效.你不认为我们应该使用StackOverflow来找到ACTUAL问题吗?(使它比其他任何地方都有用吗?)
在LoginCtl_Authenticate事件中,您是将EventArgs.Authenticated属性设置为true吗?
例如
protected void LoginCtl_Authenticate(object sender, AuthenticateEventArgs e)
{
// Check the Credentials against DB
bool authed = DAL.Authenticate(user, pass);
e.Authenticated = authed;
}
Run Code Online (Sandbox Code Playgroud)
我已经在您发送给我的文件中检查了代码(再次感谢您发送给我).
注意:我没有测试过,因为我没有安装数据库等.
但是,我很确定这是问题所在.
您需要为ASP.NET控件设置MembershipProvider属性.为它们定义:
<asp:Login ID="Login1" runat="server"
MembershipProvider="MySqlMembershipProvider">
<LayoutTemplate>
<!-- template code snipped for brevity -->
</LayoutTemplate>
</asp:Login>
Run Code Online (Sandbox Code Playgroud)
和..
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server"
MembershipProvider="MySqlMembershipProvider">
<WizardSteps>
<asp:CreateUserWizardStep runat="server" />
<asp:CompleteWizardStep runat="server" />
</WizardSteps>
</asp:CreateUserWizard>
Run Code Online (Sandbox Code Playgroud)
然后,它将控件绑定到具有给定名称的成员资格提供程序(您已在Web.Config中指定).
在你的解决方案中给出一个旋转,让我知道你是如何进行的.我希望这适合你:)
我还要补充,我知道你不应该需要做,因为默认的服务提供商设置的,但我也有这个在过去的问题.我结束了他们全部设置为手动和所有工作得很好.
| 归档时间: |
|
| 查看次数: |
12803 次 |
| 最近记录: |