繁体   English   中英

适用于C#Web应用程序的具有Box.V2.JWTAuth的Box Windows V2 SDK

[英]Box Windows V2 SDK with Box.V2.JWTAuth for C# web application

我正在尝试使用Box.V2.JWTAuth创建服务器到服务器的Box API调用。

我使用git中的代码:

var boxConfig = new BoxConfig(CLIENT_ID, CLIENT_SECRET, ENTERPRISE_ID, JWT_PRIVATE_KEY, JWT_PRIVATE_KEY_PASSWORD, JWT_PUBLIC_KEY_ID);
var boxJWT = new BoxJWTAuth(boxConfig);

var adminToken = boxJWT.AdminToken();
var adminClient = boxJWT.AdminClient(adminToken);

在Visual Stuido中进行调试时,运行以创建新的BoxJWTAuth(boxConfig),始终显示“找不到PEMReader.cs”。

我将其与https://github.com/box/box-windows-sdk-v2中的示例进行比较,并在Box.V2.Samples.JWTAuth参考中找到Box.V2.JWTAuth具有PEMpasswordFinder类,但是我从nuget安装的那个没有此类。

这是BoxJWTAuth无法在我的代码中创建的原因吗?

有任何想法吗?

谢谢。

Box.V2的NuGet包已过期。 我发现我必须从GitHub下载代码,并提取所需的两个项目(Box.V2.JWTAuth和Box.V2),并将它们包括在我的项目中。

我还要指出,他们的示例不符合大多数企业安全标准,因为证书应存储在证书存储中,这需要一个PFX文件(而不是PEM文件)。 如果他们采用这种方法,则他们不需要Bouncy Castle来读取PEM文件,因为X509Store类可以从证书存储区读取它们并返回X509Certificate2实例。 此外,X509Certificate2也可以直接读取PFX文件,但不能读取PEM文件。

仅添加到David的答案中,一旦添加了两个项目,就可以按照以下步骤使用PEM文件。

   private static BoxClient BoxClient(string user)
    {
        var filePath = HttpContext.Current.Server.MapPath("~/App_Data/private_key.pem");
        var privateKey = File.ReadAllText(filePath);

        var boxConfig = new BoxConfig(CLIENT_ID, CLIENT_SECRET, ENTERPRISE_ID, privateKey, JWT_PRIVATE_KEY_PASSWORD,
            JWT_PUBLIC_KEY_ID);
        var boxJWT = new BoxJWTAuth(boxConfig);

        var userToken = boxJWT.UserToken(user); 
        var userClient = boxJWT.UserClient(userToken, user); 
        return userClient;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM