【发布时间】:2010-06-27 21:49:58
【问题描述】:
我一直在使用 DoNetOpenAuth 库并遵循示例here
身份验证正在运行,但即使我需要电子邮件,claimresponse 也是空的。 事实上,我需要什么并不重要,claimresponse 始终为空。不知道我做错了什么,非常感谢您的帮助。
提前致谢。
这是我的登录按钮代码
protected void btnSubmit_Click( object sender, EventArgs e )
{
//Login button has been pushed. Add an extension and redirect
using (OpenIdRelyingParty openId = new OpenIdRelyingParty())
{
IAuthenticationRequest request = openId.CreateRequest( txtOpenID.Text );
request.AddExtension( new ClaimsRequest
{
Email = DemandLevel.Require,
Country = DemandLevel.Request,
TimeZone = DemandLevel.Request
} );
request.RedirectToProvider();
}
}
这是页面加载代码。但 ClaimsResponse 变量始终为空。
protected void Page_Load( object sender, EventArgs e )
{
OpenIdRelyingParty openId = new OpenIdRelyingParty();
var response = openId.GetResponse();
//check if we're processing a request
if(response != null)
{
switch ( response.Status )
{
case AuthenticationStatus.Authenticated:
//authentication worked. grab our required fields
var claimsResponse = response.GetExtension<ClaimsResponse>();
//TODO enter required fields into the database
break;
case AuthenticationStatus.Canceled:
//TODO handle cancel
break;
case AuthenticationStatus.Failed:
//TODO handle failed
break;
}
}
}
【问题讨论】:
-
您的链接似乎已失效,至少从我所在的位置来看是这样。您可以在这里发布您的代码吗?
标签: .net openid dotnetopenauth