簡體   English   中英

如何在 C# 中驗證 OpenId 令牌?

[英]How can I validate OpenId token in C#?

我正在嘗試使用此參數進行驗證:

"openid.mode=check_authentication"<br>
+ "&openid.assoc_handle=" + txtAssocHandle.Text<br>
+ "&openid.response_nonce=" + HttpUtility.UrlEncode(txtNonce.Text)<br>
+ "&openid.op_endpoint=" + txtEndpoint.Text<br>
+ "&openid.sig=" + txtSignature.Text<br>
+ "&openid.signed=mode,identity,return_to";

它返回

is_valid:false
ns:http://specs.openid.net/auth/2.0

我在這里做錯了什么? txt 字段正在填充登錄響應值

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

驗證 OpenID 令牌不僅僅是使用“啞模式”將其發送回 OP。 你想做什么?

您是否考慮過使用OpenID 庫 說真的,正確使用 OpenID(意味着安全且可互操作)是一項艱巨的任務。 比組裝正確的查詢字符串要大得多。 :)

暫無
暫無

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

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