2010-07-21 55 views
1

我試圖用這個參數來驗證:如何驗證C#中的OpenId標記?

「openid.mode = check_authentication」
+ 「& openid.assoc_handle =」 + txtAssocHandle.Text
+ 「& openid.response_nonce =」 + HttpUtility.UrlEncode (txtNonce.Text)
+ 「& openid.op_endpoint =」 + txtEndpoint.Text
+ 「& openid.sig =」 + txtSignature.Text
+ 「&和openid.signed =模式,身份的return_to」;

,並返回

is_valid:假 NS:http://specs.openid.net/auth/2.0

我究竟做錯了什麼? txt字段正在填寫登錄響應值

回答

0

您的openid.signed參數需要與OP發送給您的RP完全相同,而不是這個不完整的3個參數的硬編碼列表。你所有的參數都應該被URL編碼,而不僅僅是你的隨機數。

驗證OpenID令牌比使用「啞模式」將其發送回OP更多。你想做什麼?

您是否考慮使用OpenID library?說真的,正確地使用OpenID(意味着安全,可互操作)是一項重要的工作。比組裝正確的查詢字符串更大。 :)

+0

我想讓用戶登錄,然後我將令牌傳遞給Web服務,然後Web服務必須驗證此令牌。 我試過這個庫,但我沒有找到任何幫助來驗證令牌。 – tiagodll 2010-07-22 13:34:50

+0

您是否將它傳遞給了Web服務*,以驗證令牌或因爲您使用令牌來授權代表用戶進行的請求? – 2010-07-22 19:46:21

+0

我正在使用令牌作爲每種方法的參數來驗證用戶是否有權訪問該方法。 – tiagodll 2010-07-22 19:55:09