用于C#web应用程序的带Box.V2.JWTAuth的Box Windows V2 SDK
我正在尝试使用Box.V2.JWTAuth创建服务器到服务器的Box api调用 我使用git中的代码:用于C#web应用程序的带Box.V2.JWTAuth的Box Windows V2 SDK,c#,box-api,jwt,C#,Box Api,Jwt,我正在尝试使用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 = boxJW
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 not found”
我比较了中的示例,并在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文件。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;
}
为了补充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;
}
如果您查看反汇编,它指的是bouncy castle,一个加密包。PEM是您的密钥文件,所以我假设它正在尝试读取您的密钥文件,但我还没有看到如何将其指向任何地方。你找到解决方案了吗?如果你查看反汇编,它指的是bouncy castle,一个加密包。PEM是您的密钥文件,所以我假设它正在尝试读取您的密钥文件,但我还没有看到如何将其指向任何地方。你找到解决办法了吗?