私は、MVC(Asp.net 4.5.2)のApiControllerでapiを実装しています。そのAPIでは、HttpResponseExceptionをHttpResponseMessage(HttpStatusCode.Unauthorized)でスローし、ReasonPhraseを指定したいと考えています。 asp/mvcをログインページにリダイレクトしようとするのではなく、クライアントに直接これを送ることができますか?クライアントに直接HTTPResponseExceptionをスローする
0
A
答えて
0
Asp.Netフォーム認証モジュール401あなたがUseCookieAuthenticationを使用する場合302
に、次いでOnApplyRedirect変更することによって、これを抑える変換
ファイルStartup.Auth.cs - > ConfigureAuth方法- > app.UseCookieAuthentication内部(新しいCookieAuthenticationOptions {プロバイダー=新しいCookieAuthenticationProvider {- >追加OnApplyRedirect
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
Provider = new CookieAuthenticationProvider
{
OnApplyRedirect = context =>
{
if (!context.Request.Uri.LocalPath.StartsWith(VirtualPathUtility.ToAbsolute("~/api")))
{
context.Response.Redirect(context.RedirectUri);
}
}
}
});
1
var message = new HttpResponseMessage(HttpStatusCode.Unauthorized);
message.ReasonPhrase = "Hello";
throw new HttpResponseException(message);
ただし、リダイレクトはWeb.configの設定によって異なります。あなたはこのセクションを削除した場合、リダイレクトは発生しません
<system.web>
<authentication mode="Forms">
<forms loginUrl="/Login/Index"></forms>
</authentication>
</system.web>
:私はあなたがこのようなweb.configファイルのsomethinkでの認証部を持っていると思います。しかし、この場合は、独自に認証を実装する必要があります。
関連する問題
- 1. 空の200応答を返すWebAPIアクションメソッドでHttpResponseExceptionをスローする
- 2. Twilioクライアントから別のTwilioクライアントに直接電話をする
- 3. JavaのGoogle HTTPクライアントライブラリがHttpResponseExceptionをスローする:301 Moved Permanently
- 4. ファイルを直接クライアントにファイルホストからダウンロードする
- 5. Twilio TURNサーバーをAndroid(サーバー、クライアント)に直接使用する方法
- 6. クライアントはエンドーサに直接接続する必要がありますか?
- 7. Podio AuthTokenをpodio-goクライアントに直接渡す方法
- 8. 一度値を直接変更する方法(クライアント側)?
- 9. $ stateproviderはURLバーから直接リンクにアクセスすると404をスローします
- 10. GAE HttpResponseException:401
- 11. HttpResponseException:内部サーバーエラー
- 12. Resteasyメソッドが例外をスローした後にクライアントが接続を保持する
- 13. クライアントから直接SASキーを使用してAzureストレージにアップロード
- 14. スクリーン/クライアント座標にテクスチャを直接描画
- 15. Rabbitmqクライアントがエラーをスローするエラー
- 16. AndroidクライアントのソケットがSocketExceptionをスローする:
- 17. 私のクライアントからトークンを私のクライアントからBotボットフレームワークに直接送ることができます
- 18. クライアントに接続するServerSockets
- 19. 受信したメッセージをクライアントで直接処理する(netio-frameworkを使って)。
- 20. http(javascriptクライアント)からAmazon SQSに直接リクエストを送信できますか?
- 21. JSONオブジェクトのクライアント側のプロパティへの直接アクセス
- 22. サーバに例外をスローしてクライアントC++でキャッチするには?
- 23. 関数がPromiseを返すときに、Javascriptのパラメータアサーションを直接スローする必要がありますか?
- 24. データを直接Cassandraデータベースにスクラビングする
- 25. アドレスに直接値を追加する
- 26. TypeConverterを列挙に直接バインドする
- 27. オーディオをNSDataに直接録音する
- 28. DOMにオーディオを直接ロードする
- 29. ウェブサイトにアプリケーションを直接インストールする
- 30. .aspxを.pdfに直接変換する
私はあなたの指示を完全に理解しているとは思わない。私はSnippetをConfigureAuth(app)の直下のStartup.Configuration(IAppBuilder app)に追加しましたが、まだログインするようにリダイレクトされています。 – Roger
startup.configuration以下ではありません。 startup.auth.csファイルにアクセスしてください。 line app.UseCookieAuthenticationを検索します。 UseCookieAuthenticationの内部で、プロバイダを設定すると、このコードを貼り付けてコピーします(OnApplyRedirectをオーバーライドします)。 – Kaushal
ああ、はい。ありがとう、これは私が必要としていたものです。 APIはauthまたはapiエラーで詳細な説明を返すようになり、残りのアプリケーションの認証は変更されません。 – Roger