当前位置: 首页>>代码示例>>C#>>正文


C# OpenIdRelyingParty.AddExtension方法代码示例

本文整理汇总了C#中DotNetOpenAuth.OpenId.RelyingParty.OpenIdRelyingParty.AddExtension方法的典型用法代码示例。如果您正苦于以下问题:C# OpenIdRelyingParty.AddExtension方法的具体用法?C# OpenIdRelyingParty.AddExtension怎么用?C# OpenIdRelyingParty.AddExtension使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DotNetOpenAuth.OpenId.RelyingParty.OpenIdRelyingParty的用法示例。


在下文中一共展示了OpenIdRelyingParty.AddExtension方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Login

        public void Login()
        {
            response = new OpenIdRelyingParty().GetResponse();

            if (response == null)
            {
                var request = new OpenIdRelyingParty().CreateRequest(Url);

                request.AddExtension
                (
                    new ClaimsRequest()
                    {
                        Email = DemandLevel.Require,
                        Language = DemandLevel.Require,
                        TimeZone = DemandLevel.Require,
                        Country = DemandLevel.Require,
                        BirthDate = DemandLevel.Require,
                        PostalCode = DemandLevel.Require,
                        Gender = DemandLevel.Require,
                        Nickname = DemandLevel.Require,
                        FullName = DemandLevel.Require
                    }
                );
                request.RedirectToProvider();

            } else if (response != null && response.Status == AuthenticationStatus.Authenticated)
            {
                IsAuthenticated = true;
                //基本
                var claimResponse = response.GetExtension<ClaimsResponse>();

                User = new NTPCLibrary.User();
                User.Identity = response.ClaimedIdentifier.ToString().Split('/').Last();

                User.Departments = new List<Department>();
                if (claimResponse != null)
                {
                    User.ID = claimResponse.PostalCode;
                    User.FullName = claimResponse.FullName;
                    User.NickName = claimResponse.Nickname;
                    User.Email = claimResponse.Email;
                    User.Gender = claimResponse != null ? (claimResponse.Gender.Equals(Gender.Male) ? "男" : "女") : string.Empty;
                    User.BirthDate = claimResponse.BirthDate;
                    User.SchoolName = claimResponse.Country;
                    User.ClassRoom = claimResponse.Language;
                    User.Departments = JsonConvert.DeserializeObject<List<Department>>(claimResponse.TimeZone);
                }

                //延伸
                FetchResponse fetchResponse = response.GetExtension<FetchResponse>();

                User.AXExtension = fetchResponse != null ? GetAx(fetchResponse) : "無";

                //寫入Cookie
                Util.SetCookie<User>(OPENID_COOKIE, User, CookieDomain, true);
            }
        }
开发者ID:kingofamani,项目名称:OpenId,代码行数:57,代码来源:OpenID.cs

示例2: HandleNullResponse

        private ActionResult HandleNullResponse(string url, string returnUrl)
        {
            Identifier id;
            if (Identifier.TryParse(url, out id) == false)
                ModelState.AddModelError("identifier", "The specified login identifier is invalid");

            if (ModelState.IsValid == false)
            {
                if (Request.IsAjaxRequest())
                    return Json(new {Success = false, message = ModelState.GetFirstErrorMessage()});

                TempData["Message"] = ModelState.GetFirstErrorMessage();
                return Redirect(returnUrl);
            }

            try
            {
                var theReturnUrlForOpenId = new UriBuilder(Url.AbsoluteAction("Authenticate"))
                {
                    Query = "returnUrl=" + Uri.EscapeUriString(returnUrl)
                }.Uri;

                var request = new OpenIdRelyingParty().CreateRequest(url, Realm.AutoDetect, theReturnUrlForOpenId);
                request.AddExtension(new FetchRequest  // requires for Google
                {
                    Attributes =
                                     	{
                                     		new AttributeRequest(WellKnownAttributes.Name.First, true),
                                            new AttributeRequest(WellKnownAttributes.Name.Last, true),
                                            new AttributeRequest(WellKnownAttributes.Contact.Email, true),
                                            new AttributeRequest(WellKnownAttributes.Contact.Web.Blog, true),
                                            new AttributeRequest(WellKnownAttributes.Contact.Web.Homepage, true),
                                            new AttributeRequest(WellKnownAttributes.Name.FullName, false),
                                     	}
                });
                request.AddExtension(new ClaimsRequest // other providers
                {
                    Email = DemandLevel.Require,
                    FullName = DemandLevel.Require,
                    Nickname = DemandLevel.Require,
                });
                return request.RedirectingResponse.AsActionResult();
            }
            catch (ProtocolException ex)
            {
                if (Request.IsAjaxRequest())
                    return Json(new {message = ex.Message});
                TempData["Message"] = ex.Message;
                return Redirect(returnUrl);
            }
        }
开发者ID:game7,项目名称:RaccoonBlog,代码行数:51,代码来源:SocialLoginController.cs


注:本文中的DotNetOpenAuth.OpenId.RelyingParty.OpenIdRelyingParty.AddExtension方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。