簡體   English   中英

Identityserver4登錄ValidateAntiForgeryToken

[英]Identityserver4 Login ValidateAntiForgeryToken

我有identityserver4工作,但我面臨一個問題,我不知道如何解決。 我從他們的GitHub倉庫( https://github.com/IdentityServer/IdentityServer4.Templates )下載了一個示例項目。 使用他們的IdentityServer4InMem示例,我能夠准確復制我正在經歷的內容。

如果我運行項目並使用以下URL打開兩個選項卡: http:// localhost:5000 / Account / Login

如果登錄到選項卡1,如果我嘗試登錄到選項卡2,我會收到HTTP ERROR 400.我研究過它與ValidateAntiForgeryToken有關,如果我取消注釋,我就不會收到錯誤。 當然我不能在生產中這樣做,所以我試圖找到一個解決方案。

此問題與Identity Server無關。

要使用[ValidateAntiForgeryToken],您需要在.cshtml文件中使用@ html.antiforgerytoken(),該文件在隱藏字段中創建唯一標記但在.net核心中您不需要使用@html幫助程序。 當您為登錄頁面發出HttpGet請求時,會生成此隱藏字段的令牌,然后在您單擊登錄按鈕時通過該令牌。

在您打開瀏覽器中的兩個選項卡的情況下,它會在get請求中創建令牌。 當您從一個選項卡(HttpPost請求)登錄時,您的身份將從匿名用戶更改為某個有效用戶,在這種情況下,您以前的anonymos用戶令牌不再有效,並且它將始終為您提供400狀態。

此功能可防止跨站點請求偽造 ,避免在用戶通過身份驗證后提交任何表單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM