【发布时间】:2017-06-06 01:06:05
【问题描述】:
我正在针对Microsoft.OneDrive.SDK 进行编码,并且我还包含了Microsoft.OneDrive.SDK.Authentication。我遇到的问题是我有一个控制台应用程序,它只打开一个白色窗口,它清楚地提示我登录。
代码:
using System;
using System.Threading.Tasks;
using Microsoft.OneDrive.Sdk;
using Microsoft.OneDrive.Sdk.Authentication;
namespace SecondTake_OneDrive_SDK
{
class Program
{
[STAThread]
static void Main()
{
RunTask().Wait();
}
static async Task RunTask(OneDriveClient oneDriveClient = null)
{
Task authTask = null;
if (oneDriveClient == null)
{
var msaAuthenticationProvider = new MsaAuthenticationProvider("CLIENT_ID",null, "https://login.live.com/oauth20_desktop.srf", new[] { "onedrive.readonly", "wl.signin" }, null, new CredentialVault("CLIENT_ID));
authTask = msaAuthenticationProvider.AuthenticateUserAsync();
}
try
{
await authTask;
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
}
【问题讨论】:
-
在调试应用程序时,如果您在
if( oneDriveClient == null)行上放置一个断点 - oneDriveClient 仍然为空吗?我想它不是。因此,程序将跳过所有代码并跳转到它下面的 try 块。 -
您想要实现的行为是什么?除非您通过其他方式获得了令牌,否则用户将需要进行身份验证。
-
@ChristopherThomas,我试图理解为什么我会收到一个白框提示但没有加载任何内容。
-
@prestonsmith
oneDriveClient仍然为空,因为它是默认值——然后它会遇到 if。