Я работаю над dll
, который используется приложением веб-формы. Одной из особенностей dll является создание Google CalendarService
и его использование. Когда я запускаю веб-формы на моем локальном хосте, все работает бесперебойно. Однако, если я запускаю его из Azure сайтовAzure WebSites запрещает доступ к Google Api
метод 'GoogleWebAuthorizationBroker.AuthorizeAsync' бросает HttpListenerException (0x5): Доступ запрещен
Вот трассировки стека:
[HttpListenerException (0x5): Access is denied]
Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +82
Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task) +71
Mosoft.Integrations.CalendarService.<GetCredentials>d__2.MoveNext() +362
[AggregateException: One or more errors occurred.]
System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) +3833113
System.Threading.Tasks.Task`1.GetResultCore(Boolean aitCompletionNotification) +73
System.Threading.Tasks.Task`1.get_Result() +10900681
Mosoft.Integrations.CalendarService.GoogleCalendar..ctor(Int32 userID) +38
WebFormsDemo.ModalCreate.CreateServices() +35
WebFormsDemo.ModalCreate.Page_Load(Object sender, EventArgs e) +240 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
System.Web.UI.Control.OnLoad(EventArgs e) +92
System.Web.UI.Control.LoadRecursive() +54
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772
И вот как я установил учетные данные
private static async Task<BaseClientService.Initializer> GetCredentials(int userID)
{
ClientSecrets secrets = new ClientSecrets
{
ClientId = CLIENT_ID,
ClientSecret = CLIENT_SECRET
};
UserCredential googleCredential = await GoogleWebAuthorizationBroker.AuthorizeAsync(secrets,
new[] { Google.Apis.Calendar.v3.CalendarService.Scope.Calendar }, userID.ToString(), CancellationToken.None, new MyDataStore());
var initializer = new BaseClientService.Initializer
{
HttpClientInitializer = googleCredential,
ApplicationName = "MyCalendar"
};
return initializer;
}
Любые предложения, что может быть неправильным? Или указывая на правильное направление?
Если по белой листинге вы имеете в виду разрешить всем IP-адресам доступ к моему домену, то да, это делается. –
@PauliusSabutis Нет, я имею в виду, что вы должны сказать Google «Эй, я буду получать доступ к вам от« www.mysite.com ». Пожалуйста, –