本文整理汇总了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);
}
}
示例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);
}
}