1

ヘルプ!ログインページで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>

以前は機能していましたが、機能を停止するために何かを変更したとは思いません。

4

2 に答える 2

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>

最後の行の検証グループに注意してください。

于 2009-06-30T16:55:34.400 に答える
1

Loginコントロールをテンプレートに変換し、いくつかのプロパティを変更してから、元のレイアウトにリセットすることで、自分で修正することができました。

なぜこれが違いを生むのか(おそらく再コンパイルなどを強制したのか)はわかりませんが、現在は機能しています。

助けてくれた人たちに感謝します。

于 2009-06-30T22:12:30.487 に答える