2009-06-30 66 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> 

注意在最後一行的驗證組。