本文整理汇总了C#中IAuthorizationState.ThrowIfNull方法的典型用法代码示例。如果您正苦于以下问题:C# IAuthorizationState.ThrowIfNull方法的具体用法?C# IAuthorizationState.ThrowIfNull怎么用?C# IAuthorizationState.ThrowIfNull使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IAuthorizationState
的用法示例。
在下文中一共展示了IAuthorizationState.ThrowIfNull方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RefreshToken
public bool RefreshToken(IAuthorizationState authorization, TimeSpan? skipIfUsefulLifeExceeds,
Func<IDirectedProtocolMessage, IProtocolMessage> requestProvider) {
authorization.ThrowIfNull("authorization");
Certificate.ThrowIfNull("certificate");
bool result = false;
// Check if the token is still valid.
if (skipIfUsefulLifeExceeds.HasValue && authorization.AccessTokenExpirationUtc.HasValue)
{
TimeSpan timeSpan = authorization.AccessTokenExpirationUtc.Value - DateTime.UtcNow;
if (timeSpan > skipIfUsefulLifeExceeds.Value)
{
return result;
}
}
var requestMessage = GenerateMessage();
var response = requestProvider(requestMessage);
// Response is not strongly-typed to an AccessTokenSuccessResponse because DotNetOpenAuth can't infer the
// type from the request message type. The only way to get access to the result data is through the
// resulting Dictionary.
if (response.ExtraData.ContainsKey("access_token") && response.ExtraData.ContainsKey("expires_in")) {
result = true;
authorization.AccessToken = response.ExtraData["access_token"];
long expiresIn = long.Parse(response.ExtraData["expires_in"]);
DateTime utcNow = DateTime.UtcNow;
authorization.AccessTokenExpirationUtc = new DateTime? (utcNow.AddSeconds(expiresIn));
authorization.AccessTokenIssueDateUtc = new DateTime? (utcNow);
authorization.SaveChanges();
} else {
result = false;
}
return result;
}