這是一個名爲「我如何處理,通常IIS相關的東西」Azure。 URL重寫。認證模式表單。
所以。
我已經設置了URL重寫來處理所有主要網站API請求與反向代理並將它們傳遞到場景後面的新API。
除了api(新web應用程序)返回狀態401(由於錯誤的標記等)的情況以外,所有工作都很好。
用戶應該看到401未經授權,但它試圖將他重定向到"/login?returnUrl=some/api/url/which/returns/401/status"
。
據我所知這是因爲我在主網站的web.config
有這樣的身份驗證設置。
<authentication mode="Forms">
<forms loginUrl="~/login" timeout="100000" requireSSL="false" />
</authentication>
所以請求工作流程是這樣的:
- 用戶請求
mainapp.com/api/some/endpoint
。 - IIS與URL重寫處理它,並重定向到
apiapp.com/api/some/endpoint
- apiapp.com處理它,並返回401狀態
- mainapp.com處理401種狀態,並返回
/login?returnUrl=api/some/endpoint
爲什麼在p 302個狀態.4發生?我只需要傳遞迴應,並讓mainapp.com根本沒有想到它。
是否有可能以某種方式解決它?
你期待什麼mainapp.com是來自mainapp.com的反向代理行爲。我檢查了你的EP1,所以我假設你已經配置了反向代理。然而,這與您在這裏提到的請求被重定向時的觀點2相矛盾。如果您提到網站在Azure中的託管位置以及這兩個網站的URL重寫部分,這將有所幫助。沒有這些,很難說什麼。此外,您可能希望爲Web應用啓用失敗請求跟蹤以進一步調查此問題。 –
URL只爲mainapp重寫。是的,在蔚藍。沒有重定向,只是重寫。 – korovaisdead
因此,當你說Azure時,它是Azure應用服務還是虛擬機或雲服務? –