2010-01-28 50 views
0

我想在我現在正在製作的ASP.Net 2網站上設置OpenID,並使用DotNetOpenAuth。但是,似乎我遇到了一堵磚牆,不管我嘗試了多少東西,它都不會讓步。DotNetOpenAuth登錄失敗,但在查詢字符串中接收數據

嘗試登錄Google時,我收到了「Web請求爲'https://www.google.com/accounts/o8/ud'失敗。」作爲迴應。

奇怪的是,Google顯示正確的登錄屏幕,要求我確認是否要授予網站訪問權限。

此外,來自Google的登錄數據正被追加到查詢字符串中。

那麼,爲什麼OpenID.GetResponse不能獲取正確的數據呢?

我可以從查詢字符串中自己獲取登錄數據。但這是個好主意嗎?

謝謝您的回覆!

編輯:只是想在這裏澄清,行爲是在本地主機。

回答

1

如果你的Web服務器位於防火牆後面,或者需要一個代理進行出站HTTP請求,請確保您的web.config文件中包括一個片段使用系統默認代理(或明確指定一個。

<system.net> 
    <defaultProxy enabled="true" /> 
</system.net> 

不只是從查詢字符串中自己檢索登錄數據,還有批次的驗證必須在該字符串上完成,以避免任何人只要通過編寫就能夠以任何人身份登錄查詢字符串本身。事實上,它聽起來像DotNetOpenAuth在驗證過程中失敗,所以你不可能做到這一點elf,直到解決出站HTTP請求問題。

這裏棘手的部分是爲什麼DNOA能夠將您發送給Google,但之後無法聯繫Google來驗證肯定的斷言。你能否enable logging並將日誌添加到你的問題,如果我上面顯示的不起作用?

+0

嗨安德魯。我希望得到你的回覆。默認代理已啓用。是的,我將啓用日誌併發布日誌。 – 2010-01-29 01:31:20

+0

此外DotNetOpenAuth MVC示例項目工作正常,並在我的機器上正確接收數據。 DNOA是否使用Sessions在請求之間保留信息?我認爲這個問題也可能出現在我的web.config中。 – 2010-01-29 01:35:51

+0

DNOA不會*使用會話。試試吧:嘗試在你的web.config文件中添加''。否則,我們需要查看日誌。 – 2010-01-29 01:49:59

相關問題