openid检查\u身份验证问题

openid检查\u身份验证问题,openid,asp.net,Openid,Asp.net,我在使用openid检查\u身份验证时遇到一些问题。openid提供者(我用google和myopenid试过)的答案总是:is_valid:false 我已经获得了openid.sig和openid.identity,但是当我尝试 使用始终返回的check_身份验证调用验证我的数据 是否有效:false 到目前为止我所做的(本例中使用google openid进行身份验证,但对于myopenid则是相同的): 我将web用户从我的页面重定向到以下url: ?openid.ns= &openi

我在使用openid检查\u身份验证时遇到一些问题。openid提供者(我用google和myopenid试过)的答案总是:is_valid:false

我已经获得了openid.sig和openid.identity,但是当我尝试 使用始终返回的check_身份验证调用验证我的数据 是否有效:false

到目前为止我所做的(本例中使用google openid进行身份验证,但对于myopenid则是相同的):

我将web用户从我的页面重定向到以下url:

?openid.ns= &openid.id= &openid.identity= &openid.return\u to= &openid.mode=checkid\u设置

(当然没有换行符,我把它们放在这篇文章里只是为了 保持可读性。localhost:104/evalgoogle.aspx是我的本地测试环境)

然后我会被重定向到谷歌登录页面,在那里我可以登录 在中,并接受我将在Localhost登录。 不过我没有选中“记住”复选框

登录后,我将被重定向到我设置的返回页面并 在请求中获取以下数据:

openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0 &openid.mode=id\u res &openid.op_endpoint=https%3A%2F%2Fwww.google.com%2Fo8%2Fud &openid.response\u nonce=2010-02-12T14%3A46%3A52Z1PDyxBssEN9p5g &openid.return_to=http%3A%2F%2folocalhost%3A104%2Fevalgoogle.aspx &openid.assoc_handle=aoqobuffpvnbfyzfo15z92rru88nwjenw0u8ethvscpjdwkssp8gjvc0u &openid.signed=op_端点%2cclaid_id%2Cidentity%2Creturn_to %2响应\u当前%2关联\u句柄 &openid.sig=24Hetky5HrNwrY3%2B%2B2vtIGnvmnI%3D &openid.identity=https%3A%2F%2Fwww.google.com%2Fo8%2Fid%3Fid%3D{SOMEID} &openid.claimed_id=https%3A%2F%2Fwww.google.com%2Fo8%2Fid%3Fid%3D{SOMEID}

(其中{SOMEID}是我的谷歌id)

为了验证这个签名和google id,我编写了一个webrequest 调用check_身份验证,如openid.net/specs/openid-authentication-1_1.html#mode_check_身份验证中所述

我现在的问题是,这个始终返回的值是有效的:false

为了消除webrequest中可能出现的问题,我现在只创建一个 html表单,其中包含我从google获得的数据,如下所示:

<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="<

" />
" />
" />
" />
" />
" />

但这也只会产生一个有效值:false

有人知道我的方法有什么问题吗


非常感谢

啊,我发现了问题。我忘记发回openid了

现在,检查验证请求是否实际返回为有效:true


但这就引出了下一个问题。它确实返回is_valid:true,即使我连续多次执行请求。它是否应该返回有效:第二次查询时为false,以确保只能有一个对应的checkid设置和check身份验证请求?

您对OpenID 1.1规范的引用表明您查看的规范是错误的。您应该参考OpenID 2.0规范。我怀疑您的系统中存在一些较大的安全漏洞基于您正在尝试的一些操作的实现。您是否考虑过使用经验证的库,如DotNetOpenAuth?