2009-06-30 87 views
1

帮助!我在登录页面上使用ASP.Net登录控件,但登录按钮不再显示正在工作,并且Authenticate事件未触发。点击登录后,该页面将返回到登录页面。破坏的ASP.Net登录控制

web.config中提取

<authorization> 
<deny users="?" /> 
    <allow users="*" /> 
</authorization> 

<authentication mode="Forms"> 
    <forms loginUrl="Login.aspx" timeout="15" defaultUrl="Default.aspx" /> 
</authentication> 

我也把我的App_Themes文件的路径文件夹是匿名用户访问,从而使图像和样式表等出现确定。

登录控制本身的DestinationUrl属性设置为“Default.aspx”并且验证正在工作,就好像我省略了用户名或密码字段一样,我在页面上出现验证错误。

登录控制标记:

<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> 

先前有工作,但我不相信我已经改变任何东西,使其停止工作。

+2

defaultUrl =“Default.apsx”我认为你有一个错字。 – marcc 2009-06-30 16:46:19

回答

1

我设法通过将Login控件转换为模板,更改一些属性,然后将其重置为其原始布局来自己修复它。

我不知道为什么这会有所作为(也许它迫使重新编译或某事),但它现在工作。

感谢那些试图帮助的人。

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> 

注意在最后一行的验证组。