Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DotNetOpenId-openid获取一些数据_C#_Asp.net Mvc_Openid_Dotnetopenauth - Fatal编程技术网

C# DotNetOpenId-openid获取一些数据

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

我正在一个新网站上使用OpenId,并试图获得一些关于用户的基本信息,请参阅下面的代码。为什么下面的allways为空

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是。所以,如果你收到一封来自谷歌的电子邮件,我会说你是对的。我现在设法破解了它,谢谢你。是我在下面发布的维基文章帮了我的忙!干杯