0

お時間を割いていただき、ありがとうございます。

私の目標は、誰かが私が構築しているサイトのフロントページにログインすると、別のページに転送されることです (手動でログインした後に人々が移動するのと同じページ)

これを行うための私のコードは次のとおりです。

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (HttpContext.Current.User.Identity.IsAuthenticated) 
        {
            Response.Redirect("~/inside.aspx");
        }
    }
}

inside.aspx の C# コードは現在空です。しかし、ユーザーがログインしている場合、ブラウザでリダイレクト ループ エラーが発生します。理由はわかりません。

以下は私のweb.configです:

<configuration>
  <system.web>
    <!--<roleManager enabled="true" />-->
    <authentication mode="Forms">
      <forms loginUrl="default.aspx" defaultUrl="inside.aspx" />
    </authentication>
    <compilation debug="true" targetFramework="4.0"/>
    <profile defaultProvider="DefaultProfileProvider">
      <providers>
        <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="ApplicationServices" applicationName="/"/>
      </providers>
    </profile>
    <roleManager defaultProvider="DefaultRoleProvider">
      <providers>
        <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="ApplicationServices" applicationName="/"/>
      </providers>
    </roleManager>
    <sessionState mode="InProc" customProvider="DefaultSessionProvider">
      <providers>
        <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="ApplicationServices"/>
      </providers>
    </sessionState>
    <membership>
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
      </providers>
    </membership>
  </system.web>
  <connectionStrings>
    <add name="ApplicationServices" connectionString="Data Source=SERVERNAME;Initial Catalog=SCRUMAPIUI;User Id=tunnelld;Password=PASSWORD;" providerName="System.Data.SqlClient"/>
  </connectionStrings>
</configuration>

私は何を間違っていますか?リダイレクト ループが発生するのはなぜですか? ユーザーがログインしている場合に、自分のサイトの既定のページを別のページに正しく転送するにはどうすればよいですか?

編集:

Chromeに表示されるエラーは次のとおりです。

ここに画像の説明を入力

4

3 に答える 3

1

これを webconfig の構成セクションに追加してみてください。

<location path="default.aspx">
  <system.web>
    <authorization>
        <allow users ="*" />
    </authorization>
  </system.web>
</location>

これを既存の終了</authentication>タグのすぐ下に追加して、認証されない限り他のページへのアクセスを防ぎます。

<authorization>
  <deny users="?" /> 
</authorization>
于 2013-06-24T14:44:23.757 に答える
0

問題は、両方のファイルの CodeFile 参照が同じだったことです。ばかげた間違いですが、この問題が発生した場合は必ず確認してください。

于 2013-06-24T16:26:45.507 に答える