運行應用程序獨立(在我的情況下,只是在指定端口上運行的kestrel服務器:3001)我可以登錄(創建一個auth cookie)並使用我的會話而不發出問題隨後調用我的API控制器。但是,一旦我通過IIS發佈應用程序到主機,我可以登錄沒有問題,但對我的API控制器的所有後續請求無法授權並重定向到登錄。.Net Core Cookie身份驗證在IIS中託管時無法運行
爲了證明我的問題我已經剝奪我的應用程序下來,可以在這裏找到工作示例:Angular2AspNetCoreStarter
重現:
- 克隆回購
- 導航到項目目錄
cd Angular2AspNetCoreStarter
- 安裝依賴關係
dotnet restore
&npm install
- 構建
npm run build
- 通過IIS發佈
dotnet publish
- 主機Publishing to IIS
- 導航到託管的網站(在我的情況下,它是@
http://localhost/ng2starter
) - 登錄與任何用戶名/密碼
- 打開側導航
- 點擊發送匿名Ping(注意它的工作原理!我以前Fiddler檢查流量)
- 點擊發送Ping(注意401和重定向登錄)
我已經檢查了日誌,我在紅隼日誌中發現的錯誤是: CookieAuth was not authenticated. Failure message: Unprotect ticket failed
FYI 'CookieAuth'是我在appsettings.json文件中定義的方案名稱。
@WarrenP是否運行'npm install'並使用'npm run build'編譯出來? – wickdninja
您的新指令要好得多!我得到它的工作。當我在家時,我會在IIS上測試它,看看我能否弄清楚。當然,在IIS中運行會使調試更加困難。 –
同意......這是我的一半問題大聲笑如果只有你可以在IIS中運行並附加像ASP.NET(不核心)調試器 – wickdninja