ASP.NET MVCアプリケーションでは、<authentication>
セクションの<system.web>
セクションを介してユーザーをログオンページに自動的にリダイレクトし、承認専用ページにアクセスしようとします。問題は、ツールで使用するように設計されたアプリケーションの途中の1つのアクションが、不正なアクセスに対してまっすぐなHTTP 401応答を返す必要があるということです。実際のHTTP 401コードをこの特定のアクションのリダイレクトなしで返すにはどうすればよいですか?単一ページのASP.NETフォーム認証を無効にする
5
A
答えて
6
次のソリューションが動作するには必要な401コードを生成するためにHttpUnauthorizedResultの代わりに上記の結果を返します。しかし、これは私にとってかなりクルーギーだと感じています。
4
個別のパスに別の<system.web>
セクションを追加することができます。ここでは例を示します。この場合
<configuration>
<location path="Foo/Bar.aspx">
<system.web>
<authorization>
<allow roles="GoodGuys" />
<deny users="*"/>
</authorization>
</system.web>
</location>
</configuration>
、ページ「フー/ Bar.aspxは」GoodGuys役割を持つ人々に許可されますが、すべての人に拒否されます。
あなたのケースでは、あなたが認証なしですべての許可が必要になる場合があります
public class HttpAuthenticationRequiredResult : ActionResult
{
public override void ExecuteResult(ControllerContext context)
{
var response = context.HttpContext.Response;
response.StatusCode = 401;
response.AddHeader("WWW-Authenticate", "Basic realm=\"whatever\"");
response.Flush();
response.Close();
}
}
あなたはその後、次のことができます。私は全くそれが最適だか分からないが、
<configuration>
<location path="Foo/Bar.aspx">
<system.web>
<authentication mode="None" />
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
</configuration>
0
私は、望ましくないリダイレクト(基本的に認証が失敗し、エラー情報なしでログイン画面にリダイレクトされていたことに関するメッセージ)を返す必要があった同様のケースがありました。
これは、問題を解決する:これはASP.NETストレートアップした場合は、それが働くだろう
Response.SuppressFormsAuthenticationRedirect = true;
関連する問題
- 1. 単一ページのフォーム認証を無効にする必要があります
- 2. フォーム認証Asp.netの
- 3. ASP.NET用のWindows認証とフォーム認証
- 4. 単一の要求の証明書検証を無効にする
- 5. MVC - フォーム認証を有効にする
- 6. 認証パスワードプロンプトを無効にするIIS7
- 7. フォーム認証を既に持っているデータベースの認証 - asp.net
- 8. ASP.NET 2.0のフォーム認証
- 9. クエリーコードによるASP.NETフォーム認証
- 10. asp.netフォーム認証チケットslidingExpirationコード
- 11. Jmeter&フォーム認証チケット(asp.net)
- 12. Asp.net 4.0フォーム認証とFriendlyUrls
- 13. ASP.NET MVC + Silverlight +フォーム認証
- 14. ASP.NET MVC - フォーム認証/セッションID
- 15. ASP.NET複合フォーム/ Windows認証
- 16. WatiN単体テストでのASP.NETフォーム認証の処理
- 17. sqlserverのユーザー用にAsp.netフォーム認証
- 18. 無線認証ページiOSアプリケーション
- 19. コンソールアプリケーションからASP.Netフォーム認証Webサイトで認証する
- 20. PHPによる単一ユーザ認証
- 21. ASP.NET MVC3での基本認証とフォーム認証を混在
- 22. ログアウト後に有効なフォーム認証セッション
- 23. フォーム認証を使用したASP.NET Webフォームによるルーティング
- 24. ASP.netページは、フォーム認証リダイレクトの後に読み込みを続行します
- 25. ASP.NET MVC 4でのWindows認証とフォーム認証のハイブリッド
- 26. Tomcat認証(Realm)を無効または無効にする方法
- 27. ASP.net Windows認証とActiveDirectoryMembershipProviderを使用したフォーム認証
- 28. ASP.NET Web APIを使用した基本認証とフォーム認証
- 29. gitoliteユーザのpam認証を無効にするには
- 30. Apacheのダイジェスト認証を無効にするには
、私はASP.NET MVCでその技術を使用するのかは不明です。問題は、should-return-401のURLがmyapp/{routパラメータ}/toolにあることです。私が望んでいたとしても、system.webで指定する方法はありません。 –
* blush *あなたの投稿を読むと「MVC」が表示されませんでした。 – Randolpho
これは認証要素に対して機能しますが、認証では機能しません。次のエラーが発生します。 この要求を処理するために必要な構成ファイルの処理中にエラーが発生しました。以下の特定のエラーの詳細を確認し、設定ファイルを適切に変更してください。アプリケーションレベルを超えてallowDefinition = 'MachineToApplication'として登録されたセクションを使用するとエラーになります。 –