我在使用openid check_authentication時遇到了一些麻煩。從OpenID提供(我試圖與谷歌和myOpenID來說)的回答總是:is_valid:假openid check_authentication問題
我已經得到了openid.sig和openid.identity但是當我嘗試 驗證我的數據與check_authentication叫它總是返回 is_valid:false。
我至今(認證與谷歌的OpenID在這個例子中,但對於myOpenID來說是相同的)來完成:
我重定向從我的網頁網絡用戶到以下網址:
https://www.google.com/accounts/o8/ud ?openid.ns = http://specs.openid.net/auth/2.0 & openid.claimed_id = http://specs.openid.net/auth/2.0/identifier_select & openid.identity = http://specs.openid.net/auth/2.0/identifier_select & openid.return_to = http://localhost:104/evalgoogle.aspx & openid.mode = checkid_setup
(當然沒有換行符,我把它們放在這篇文章中只是爲了讓它們保持可讀性 。 localhost:104/evalgoogle.aspx是我的本地測試環境)
然後我將重定向到google登錄頁面,我可以在其中登錄 並接受我將在Localhost登錄。 雖然我沒有選中記住複選框。
登錄,我將重定向到的return_to頁予設置和 獲得請求中的以下數據後:
openid.ns = HTTP%3A%2F%2Fspecs.openid.net%2Fauth%2F2 0.0 & openid.mode = id_res & openid.op_endpoint = HTTPS%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fud & openid.response_nonce = 2010-02-12T14%3A46%3A52Z1PDyxBssEN9p5g &的OpenID .return_to = http%3A%2F%2Flocalhost%3A104%2Fevalgoogle.aspx & openid.assoc_handle = AOQ obUfpVnBFYzFO15z92rru88nWjEnw0u8ethVscpjDwkssp8GjVc0u &和openid.signed = op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to %2Cresponse_nonce%2Cassoc_handle & openid.sig = 24Hetky5HrNwrY3%2B%2B2vtIGnvmnI%3D & openid.identity = HTTPS%3A%2F%2Fwww.google.com% 2Faccounts%2Fo8%2Fid%3Fid%3D {SOMEID} & openid.claimed_id = HTTPS%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3D {SOMEID}
(其中{SOMEID }是我的谷歌ID)
要驗證此簽名和谷歌ID,我組成了一個webrequest 如openid.net/specs/openid-authentication-1_1中所述調用check_authentication。HTML#mode_check_authentication
我現在的問題是,這總是返回is_valid:假
爲了消除我的WebRequest可能出現的問題,我現在只創建與我回來從谷歌這樣的數據 HTML表單:
<form method="post" action="<%=Request.Params["openid.op_endpoint"] %>">
<div>
<input type="text" name="openid.mode" value="check_authentication" />
<input type="text" name="openid.assoc_handle" value="<
%= Request.Params [ 「openid.assoc_handle」]%>」 /> 「/> 」/> 「/> 」/> 「/> 」/>
但是,這也只是產生了is_valid:假
有沒有人有一個想法有什麼不對我的做法?
非常感謝你
您對OpenID 1.1規範的引用表明您正在查看錯誤的規範。你應該指的是OpenID 2.0規範。 我懷疑你的實現中有一些很大的安全漏洞,這取決於你想要做的一些事情。你有沒有考慮過使用經過驗證的庫,如DotNetOpenAuth? http://blog.nerdbank.net/2008/04/argument-for-extra-dependency-of.html –