Исправление
Я работаю над приложением asp.net, в котором я прошу людей дать разрешение (используя OAuth) на доступ к их диску Google (к определенной папке), чтобы иметь возможность просматриватьфайлы в приложении.
Когда вы запрашиваете доступ Это будет для учетной записи полного диска пользователя, а не только для одной папки.
Хранение файлов учетных данных.
Ваш вопрос немного сложен для понимания, но я думаю, что вы спрашиваете, где вы должны хранить свои учетные файлы.Способ работы FileDataStore
заключается в том, что он создает новый файл для каждого "user"
, поэтому в зависимости от того, что вы установили для «пользователя», будет создан файл, как вы можете видеть, я склонен использовать guid в конце и сохранятьв сеансе var таким образом, я знаю, когда пользователь возвращается с этим сеансом var, это тот файл, который мне нужно получить для них.На самом деле клиентская библиотека делает все это за вас, потому что, как только она увидит идентификатор, она будет использовать это автоматически.
Web против установленного приложения.
У меня есть один важный комментарий, если вы используете Asp .net и намереваетесь использоватьвеб-приложение, то вы используете неправильный код.В следующем примере показано, как пройти аутентификацию с помощью веб-приложений asp.net mvc . Обратите внимание на сеанс в приведенном ниже коде.
public class AppFlowMetadata : FlowMetadata
{
private static readonly IAuthorizationCodeFlow flow =
new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
{
ClientSecrets = new ClientSecrets
{
ClientId = "PUT_CLIENT_ID_HERE",
ClientSecret = "PUT_CLIENT_SECRET_HERE"
},
Scopes = new[] { DriveService.Scope.Drive },
DataStore = new FileDataStore("Drive.Api.Auth.Store")
});
public override string GetUserId(Controller controller)
{
// In this sample we use the session to store the user identifiers.
// That's not the best practice, because you should have a logic to identify
// a user. You might want to use "OpenID Connect".
// You can read more about the protocol in the following link:
// https://developers.google.com/accounts/docs/OAuth2Login.
var user = controller.Session["user"];
if (user == null)
{
user = Guid.NewGuid();
controller.Session["user"] = user;
}
return user.ToString();
}
public override IAuthorizationCodeFlow Flow
{
get { return flow; }
}
}