C# DotNetOpenId-openid获取一些数据
我正在一个新网站上使用OpenId,并试图获得一些关于用户的基本信息,请参阅下面的代码。为什么下面的allways为空C# DotNetOpenId-openid获取一些数据,c#,asp.net-mvc,openid,dotnetopenauth,C#,Asp.net Mvc,Openid,Dotnetopenauth,我正在一个新网站上使用OpenId,并试图获得一些关于用户的基本信息,请参阅下面的代码。为什么下面的allways为空 var myData = response.GetExtension<ClaimsResponse>(); 主代码是什么 [System.Web.Mvc.AcceptVerbs(HttpVerbs.Get)] public ActionResult LogOn() { var openid = new OpenIdRelyingPa
var myData = response.GetExtension<ClaimsResponse>();
主代码是什么
[System.Web.Mvc.AcceptVerbs(HttpVerbs.Get)]
public ActionResult LogOn()
{
var openid = new OpenIdRelyingParty();
IAuthenticationResponse response = openid.GetResponse();
if (response != null)
{
switch (response.Status)
{
case AuthenticationStatus.Authenticated:
FormsAuthentication.RedirectFromLoginPage(
response.ClaimedIdentifier, false);
var myData = response.GetExtension<ClaimsResponse>();
break;
case AuthenticationStatus.Canceled:
ModelState.AddModelError("loginIdentifier",
"Login was cancelled at the provider");
break;
case AuthenticationStatus.Failed:
ModelState.AddModelError("loginIdentifier",
"Login failed using the provided OpenID identifier");
break;
}
}
return View("Register");
}
[System.Web.Mvc.AcceptVerbs(HttpVerbs.Post)]
public ActionResult LogOn(string loginIdentifier)
{
if (!Identifier.IsValid(loginIdentifier))
{
ModelState.AddModelError("loginIdentifier",
"The specified login identifier is invalid");
return View();
}
else
{
var openid = new OpenIdRelyingParty();
IAuthenticationRequest request = openid.CreateRequest(
Identifier.Parse(loginIdentifier));
// Require some additional data
request.AddExtension(new ClaimsRequest
{
Email = DemandLevel.Request,
FullName = DemandLevel.Request
});
return request.RedirectingResponse.AsActionResult();
}
}
对于任何有这个问题的人,看看这个-我现在可以从谷歌收到一封电子邮件,但仍然没有从雅虎得到任何消息我认为他们不支持AXLiam,雅虎不会给你任何用户属性,除非你在他们的RPs特别白名单上,只有少数RPs是。所以,如果你收到一封来自谷歌的电子邮件,我会说你是对的。我现在设法破解了它,谢谢你。是我在下面发布的维基文章帮了我的忙!干杯