2010-07-21 60 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