0

を実装しようとしてFormsAuthenticationいますが、少し奇妙な動作をします。これらはからの行ですweb.config

  <authentication mode="Forms">
     <forms loginUrl="/contentpages/login.aspx" name="SiteAuth" protection="All" timeout="30" path="/" defaultUrl="/" requireSSL="false" cookieless="UseCookies" enableCrossAppRedirects="false" />
  </authentication>
  <authorization>
     <allow users="?" />
  </authorization>

したがって、正しく理解できれば、すべての anon ユーザーがルートとその下のページにアクセスできるようになります。

サイトのメイン ページ ( http://www.sample.com/ ) にアクセスすると、何らかの理由でログイン ページにリダイレクトされます。アドレスバーにアドレスを再入力すると、想定どおりにサイトのホームページに移動します(ログインする必要はありません。ログインページにアクセスしたときにログインせず、アドレスバーにアドレスを再入力しただけです)

なぜこれが起こるのですか?

状況を明確にしたいと思います。さらに情報が必要な場合は、お気軽にお問い合わせください。

4

1 に答える 1

1

場所を指定していないため、この機能が表示される場合があります。これを試してください:

<location path="your folder">
    <system.web>
    your authorization
    </system.web>
</location>

もう 1 つの問題は、権利を付与する方法です。「?」認証されていないすべてのユーザーを対象とします。単純にすべてのユーザーにアクセスを許可しようとしている場合は、"*" を使用したほうがよいでしょう。

これらのルールがカスケードしていることに注意することも重要です。そのため、複数のルールを追加してアクセスを微調整できます。たとえば、特定のユーザー グループにアクセスを許可し、それ以外のユーザーにはアクセスを拒否する場合は、次のようにします。

<authorization>
    <allow roles="administrators" />
    <deny users="*" />
</authorization>
于 2013-06-19T18:36:08.967 に答える