基于域的Google课堂身份验证

时间:2015-08-20 13:33:37

标签: google-classroom

目前我正在研究谷歌课堂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
    }

1 个答案:

答案 0 :(得分:1)

client_secret.json文件包含特定于应用程序的凭据,而不是特定于用户或域的凭据。更改client_secret.json文件不是登录/注销用户的正确方法。相反,您需要使用具有不同路径的FileDataStore