0

我正在尝试在 .Net 中创建 CryptoKey,并想知道以下异常的来源:

调用的目标已引发异常。该参数具有意外的值。参数名称:expiresUtc

DotNetOpenAuth 版本是 4.3.0.0,运行时版本是 4.0.20926。

我将一个字节数组和一个 System.DateTime(设置为 Utc)传递给 CryptoKey 构造函数,但不断收到此消息。是 DNOA 代码抛出的东西吗?如果是这样,System.DateTime 可能有什么问题?如果不是,那么我知道这是我的编码环境有问题,我会知道去哪里找。

顺便说一句,如果此构造函数的代码可用,那么我很乐意检查它以回答我的问题,提前感谢任何指针。

4

2 回答 2

1

您应该向构造函数传递一个Kind等于的参数DateTimeKind.Utc,请参阅 HostSample 扩展方法:

internal static DateTime AsUtc(this DateTime value) 
{
    if (value.Kind == DateTimeKind.Unspecified) {
        return new DateTime(value.Ticks, DateTimeKind.Utc);
    }
    return value.ToUniversalTime();
}
于 2015-07-14T08:16:15.640 回答
0

我遇到了同样的错误。我所做的是从我的数据存储中检索后将 expiresUtc 转换为 UTC 日期。所以是这样的:

new CryptoKey(key.Secret, key.ExpiresUtc.ToUniversalTime())
于 2014-05-21T23:49:59.093 回答