1

匿名ユーザーを login.aspx、register.aspx、および Site.css ファイルに制限し、サイト全体へのアクセスを認証しようとしています。現在、anonymous は正しく表示されるスタイルとして login.aspx と Site.css にアクセスできます。ただし、register.aspx リンクをクリックすると、login.aspx ページにリダイレクトされます。

Web ルートの web.config の下。ディレクトリ構造には他の web.config はありません。他の場所を探す必要があるかどうかはわかりません (WSAT がルールを保持できる場合があることは知っていますが、ルート Web.config に取って代わられるかどうかはわかりません)。

ログイン ファイルと登録ファイルがマスター ページを参照していると考えただけで、これにも明示的な承認が必要になるのでしょうか? ログインが匿名で機能する理由を説明しませんが、登録は機能しません。

ご協力いただきありがとうございます!アンソニー。

<?xml version="1.0"?>

<configuration>
  <connectionStrings>
    <add name="************"
         connectionString="Data Source=**********; Initial Catalog=************; Integrated Security=SSPI; Persist Security Info=False; Trusted_Connection=Yes"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

  <location path="Register.aspx">
    <system.web>
      <authorization>
        <allow users="?"/>
      </authorization>
    </system.web>
  </location>

  <location path="Login.aspx">
    <system.web>
      <authorization>
        <allow users="?"/>
      </authorization>
    </system.web>
  </location>

  <location path="Site.css">
    <system.web>
      <authorization>
        <allow users="?"/>
      </authorization>
    </system.web>
  </location>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />

    <authentication mode="Forms">
      <forms loginUrl="~/Website/Login.aspx" timeout="2880" />
    </authentication>

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

    <membership>
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="8" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="***********" />
      </providers>
    </membership>

    <profile>
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="**********" applicationName="/"/>
      </providers>
    </profile>

    <roleManager enabled="false">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="***********" applicationName="/" />
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
      </providers>
    </roleManager>
  </system.web>

  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>
4

2 に答える 2

0

このコードは、匿名ユーザーのみを許可します: (許可の後に追加された拒否ノードに注意してください!

<location path="Register.aspx">
    <system.web>
      <authorization>
        <allow users="?"/>
        <deny users="*" />
      </authorization>
    </system.web>
  </location>
于 2015-01-06T15:01:53.040 に答える
-1

パスを変更して、フォーム認証のログイン場所と同じ ~/Website を含めてみてください。フォーム認証セットアップの LoginUrl であるため、デフォルトでアクセスが許可されるため、指定されたログイン ページは必要ありません。

  <location path="~/Website/Register.aspx">
    <system.web>
      <authorization>
        <allow users="?"/>
      </authorization>
    </system.web>
  </location>

  <location path="~/Website/Login.aspx">
    <system.web>
      <authorization>
        <allow users="?"/>
      </authorization>
    </system.web>
  </location>
于 2013-03-01T09:09:08.017 に答える