目前我正在研究谷歌课堂API,将课堂整合到我的.NET产品中。我的问题是,当我执行此方法时,它首次要求身份验证,但是当我下次执行此代码时,它会像以前登录一样直接登录凭借即使我更改另一个(第二个)域的 client_secret.json ,它也直接登录为第一个域认证用户。我的要求是我在运行时在代码中动态更改client_secret.json文件将直接以此client_secret.json文件的域用户身份登录,而不是以前的client_secret.json文件的域用户。这可能吗? 如果是,我怎样才能实现这一目标。请对此提出任何帮助。
private ClassroomService getservice()
{
using (var stream =
new FileStream(Server.MapPath("client_secret.json"), FileMode.Open, FileAccess.Read))
{
string credPath = System.Environment.GetFolderPath(
System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials");
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
}
var service = new ClassroomService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
return service;k
}
答案 0 :(得分:1)
client_secret.json文件包含特定于应用程序的凭据,而不是特定于用户或域的凭据。更改client_secret.json文件不是登录/注销用户的正确方法。相反,您需要使用具有不同路径的FileDataStore
。