为什么EWS托管库会使OAuth访问令牌无效

时间:2019-02-05 06:47:27

标签: c# regex oauth exchangewebservices

我正在使用MS EWS托管库来订阅和接收来自交换任何邮箱的通知。 当我尝试使用OAuth访问令牌对用户进行订阅/身份验证时,EWS库首先尝试使用以下正则表达式来验证令牌的格式:

private static readonly Regex validTokenPattern = new Regex(
        @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$",
        RegexOptions.Compiled);

现在,问题在于,以下代码中的访问令牌有时无法验证此模式:

if (!validTokenPattern.IsMatch(rawToken))
            {
                throw new ArgumentException(Strings.InvalidOAuthToken);
            }

但并非每次都失败。现在的问题是,由于这是非常敏感的信息,我什至无法为用户记录生产中的访问令牌。而且在开发环境中,我们无法重现该问题。 有人遇到过这个问题吗?

参考github中的代码: https://github.com/OfficeDev/ews-managed-api/blob/25a393dbc68b420d25999bdf0a03c23d86412f57/Credentials/OAuthCredentials.cs#L92

0 个答案:

没有答案