5

ビューのディレクトリレイアウトの簡単な概要は次のとおりです。

計画

  • ページ1
  • 2ページ
  • RSS

問題

  • ページ1
  • 2ページ
  • RSS

フォーム認証を使用して、認証されていないすべてのユーザーへのアクセスを拒否しています。これは正常に機能します。ただし、RSSビューへのアクセスをすべての人に許可できるようにしたい(Googleリーダーなどを介してサブスクライブできるようにするため)

次のページをweb.configに追加することで、ページへのアクセスを許可できることを理解しています

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

ただし、次のような動的に作成されたURLを使用してこれを行うにはどうすればよいですか。

Issues/RSS/chrisj
  • そのパスは、RSSと呼ばれる問題のコントローラーにマップされます。これは、ユーザー名を取得し、問題のRSSを吐き出します...

編集

私がそれを修正したと思ったいくつかの答えが、しかし:

少なくとも私の場合、ページを表示するには認証Cookieが必要なようです。Cookieを持っている限り、ログアウトして表示することができます。

それは私には良くありません。RSSフィードであるため、ページを完全に公開する必要があります。

4

5 に答える 5

3

これは実際、私が思っていたよりもはるかに簡単でした。.netはかなり賢いようです、私は次のことを試しました:

  <location path="Issues/RSS">
<system.web>
  <authorization>
    <allow users="*" />
    <allow users="?" />
  </authorization>
</system.web>

そしてそれはうまくいきました:)

于 2008-12-04T15:38:54.213 に答える
3

<location><allow /><deny /> のことは忘れてください... アクションで [Authorize] 属性を使用する必要があるように思えます。

詳細については、次のページをご覧ください: http://www.asp.net/learn/mvc/tutorial-17-cs.aspx http://www.pnpguidance.net/post/ASPNETMVCFrameworkPreview4HandleErrorAuthorizeOutputCacheActionFilterAttributes.aspx

また、アトリビュートはコントローラ レベルでも適用できるため、個別のアクションごとに設定する必要はありません。

于 2009-03-10T21:00:30.470 に答える
1
<location path="/Issues/RSS/">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>

編集:ちなみに、これが機能する理由は、.NETがURLがディレクトリに移動すると想定しているためであり、上記のロケーションタグは「'Issues/RSS'ディレクトリ内のすべてが安全です:)

于 2008-12-04T15:39:53.650 に答える
0

これは意図したとおりに機能しない可能性があります。

少なくとも私の場合、ページを表示するには認証Cookieが必要なようです。Cookieを持っている限り、ログアウトして表示することができます。

それは私には良くありません。RSSフィードであるため、ページを完全に公開する必要があります。

于 2009-01-21T17:43:31.327 に答える
0

[Authorize] タグがおそらくあなたの問題を解決するだろうという Charlino に同意します。

RSS とページの両方に単一のコントローラー アクションを使用している (そして、いくつかのパラメーターに基づいて異なる ActionResult をレンダリングしている) 場合は、ユーザーが で認証されてHttpContext.Current.User.Identity.IsAuthenticatedいるかどうかを確認し、それをコントローラー アクション内で使用して、続行してアクセスを許可します。

于 2009-03-11T05:13:33.577 に答える