绝对可以在 ASP.NET Web 应用程序中使用 Box Windows SDK。
我最近更新了自述文件,提到 SDK 支持 .NET 4.0 框架,因此只要您的项目针对该框架或更高版本,您就可以开始使用了。如果您正在运行 Visual Studio 的快速版本,很遗憾您将无法打开 SDK 源项目,因为它是作为 PCL(可移植类库)构建的。但是,您仍然可以通过 nuget 获取二进制文件。
在 ASP.NET 中使用 async/await 调用时必须记住的一件重要事情是,您必须在 Page 声明中包含 Async="true" 属性:
<%@ Page Language="C#" Async="true" %>
您提到您能够成功获得 OAuth2 令牌/刷新令牌。我不确定您是否编写了自己的工作流程来检索这些令牌,但 SDK 支持处理将身份验证代码交换为令牌的第二步,如下所示:
public async Task Authenticate(string authCode)
{
BoxConfig config = new BoxConfig("YOUR_CLIENT_KEY", "YOUR_CLIENT_SECRET", new Uri("YOUR_REDIRECT"));
BoxClient client = new BoxClient(config);
await client.Auth.AuthenticateAsync("authCode");
}
请注意,当使用 async/await 时,您必须使用“async”关键字来装饰您的方法签名。微软写了很多关于进一步理解async/await关键字的文章。
如果您构建了自己的 OAuth2 工作流程,SDK 还接受完成的 OAuth 会话。这是完整的示例,以及在根级文件夹中获取项目的示例:
public partial class WebForm1 : System.Web.UI.Page
{
BoxClient _client;
protected async void Page_Load(object sender, EventArgs e)
{
BoxConfig config = new BoxConfig("YOUR_CLIENT_KEY", "YOUR_CLIENT_SECRET", new Uri("https://YOUR_REDIRECT"));
BoxClient client = new BoxClient(config);
OAuthSession session = new OAuthSession("YOUR_ACCESS_TOKEN", "YOUR_REFRESH_TOKEN", 3600, "bearer");
_client = new BoxClient(config, session);
}
protected async void Button_Click(object sender, EventArgs e)
{
BoxFolder folder = await _client.FoldersManager.GetItemsAsync("0", 10);
string test = folder.Name;
}
}