0

Yanlış bir şey yaptığımı hissediyorum ...WebSunucusu: GoogleWebAuthorizationBroker.AuthorizeAsync

GoogleWebAuthorizationBroker.AuthorizeAsync yeni bir tarayıcı penceresi açmak gerekiyordu ve sonra kullanıcı kendini kimlik doğrulaması yapabilir ... AMA! WebServer'da veya Azure bulutunda WorkerRole'da kullanıyorum, böylece GoogleWebAuthorizationBroker.AuthorizeAsync teknik olarak istemci makinede yeni tarayıcı penceresi açabilir mi?

Bu sorduğum ikinci soru, ama şimdi daha özel bir soru, çünkü bir şey özlediğimi hissediyorum. The first one, yaptığım şey hakkında biraz daha fazla ayrıntı içeriyor.

cevap

0

Sorununuzu düzgün bir şekilde anlama konusunda sorunlarım olduğunu düşünüyorum, bunun bir sorun olduğunu tam olarak anlayamıyorum. Bu, Googles .net istemci kitaplığının iç işleyişi hakkında daha fazla bir sorudur ve bu durumda yalnızca konu dışı olabilir Stack için ama bunu deneyelim.

Bir web uygulaması vardır

, kimlik doğrulama için sadece bu pencereye yönlendirmek yapılır kullanıcıya

enter image description here

bu tarayıcı penceresini göstermek gerekiyor. Onlar kimlik doğrulamasını kabul tıklayın varsayarsak

https://accounts.google.com/o/oauth2/auth?client_id={clientid}.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/analytics.readonly&response_type=code 

Eğer kimlik ele Yönlendirme URI kullanarak sunucunuza yönlendirilir. Kullanıcı bilgisayarında yeni bir tarayıcı penceresi açmamakta, mevcut sayfayı o ana sayfaya yönlendirmekte ve daha sonra web sunucunuza geri dönmektedir.

Yine bir sorun mu yaşıyorsunuz, yoksa bu istemci kitaplığının nasıl çalıştığına dair genel bir merak mı?

+0

Teşekkürler! Tam olarak tüm sorularıma cevap vermedi, ama şimdi istediğim şeyin mümkün olduğunu ve sadece yanlış bir şey yaptığımı anlıyorum .... sonunda gapi kullandığımda eksik bir barış buldum, yanıt vermem gerekiyor: "," belirteci "yerine. Artık sunucuya, kodun erişimini ve yenileme kodunu ve web sitenizdeki yayınlardan birini uygulamam için kullanabiliyorum. Şimdi, GoogleWebAuthorizationBroker.AuthorizeAsync'i çağırmadan UserCredential sınıfının örneğini nasıl oluşturabileceğimi düşünüyorum, çünkü onu kullanmaya gerek yok gibi görünüyor, ama belki bir şeyi daha özlüyorum :) –

+0

Aslında gapi ve .net'i karıştırmayı denemedim istemcisi. Çalışırsan, duymak isterim. – DaImTo

+1

Evet, çalıştım ve her şey mükemmel görünüyor! İstemciden sunucuya yetki kodu göndüyorum, sunucu bu kodu access_token + refresh_token ile değiştiriyor, ardından GoogleWebAuthorizationBroker.AuthorizeAsync kullanmadan bir UserCredentials örneği oluşturup google api'yi kullanabiliyorum. İstemci üzerinde yetkilendirme kodu almak için, response_type: "kod" gapi'ye gönderilmeli ve sunucuda refresh_token elde etmek için istemci "access_type" öğesini eklemelidir: gapi'ye çevrimdışı. Çalışma kodunuzu –