帮助!我在登录页面上使用ASP.Net登录控件,但登录按钮似乎不再有效,并且未激活Authenticate事件。单击“登录”后,页面将返回“登录”页面。
web.config extract
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" timeout="15" defaultUrl="Default.aspx" />
</authentication>
我还设置了我的App_Themes文件夹的路径,以供匿名用户访问,以便图像和样式表等显示正常。
登录控件本身的DestinationUrl属性设置为“Default.aspx”并且验证正在运行,就好像我省略了Username或Password字段一样,我在页面上出现验证错误。
登录控制标记:
<asp:Login ID="Login1" runat="server" LoginButtonType="Image"
Width="557px" DestinationPageUrl="~/Default.aspx"
InstructionText="To login, please enter your username and password below."
DisplayRememberMe="False" OnAuthenticate="Login1_Authenticate" LoginButtonImageUrl="~/App_Themes/RDCU/Images/submit.gif">
<InstructionTextStyle Font-Names="Verdana" Font-Size="Small" ForeColor="#00A4E8" Height="40px" />
<TitleTextStyle CssClass="header" HorizontalAlign="Left" />
<TextBoxStyle Width="200px" />
<LabelStyle Font-Bold="True" />
</asp:Login>
它以前有用过,但我不相信我已经改变任何东西让它停止工作。
答案 0 :(得分:1)
这可能是您的验证问题。
假设您在页面上有ASP.Net验证控件,它们可能会干扰登录控件已存在的验证。尝试将验证控件的ValidationGroup属性设置为Login控件的名称。这会将它们放在与登录控件相同的验证组中,从而使验证保持统一。
这样的事情:
<asp:Login runat="server" ID="myLogin" DisplayRememberMe="false"
FailureText="Invalid user name or password"
UserNameLabelText="User Name:" TitleText=""
LoginButtonText="Submit" TextBoxStyle-Width="175px">
</asp:Login>
<asp:CustomValidator runat="server" ID="cvTandC"
ClientValidationFunction="validateTandC" Display="Dynamic"
EnableClientScript="true" ErrorMessage="Please check to continue."
ForeColor="Red" ValidateEmptyText="true"
ValidationGroup="myLogin"></asp:CustomValidator>
请注意最后一行的验证组。
答案 1 :(得分:1)
我设法通过将Login控件转换为模板,更改某些属性,然后将其重置为原始布局来自行修复。
我不确定为什么这会有所作为(也许它会被迫重新编译或者某些东西)但它现在正在运作。
感谢那些试图提供帮助的人。