2012-05-15 2 views
3

Я использую список документов Google api для .net V3 (dll version 2.0.1.0). Я использую аутентификацию входа в систему, как описано в этой ссылке https://developers.google.com/google-apps/documents-list/#authorizing_requests_with_clientloginКак определить, является ли аккаунт учетной записью Google Apps?

Как определить, есть ли учетная запись Google Apps или обычная учетная запись Google?

Спасибо, Bharath

ответ

-4

потребительских счетов Google являются @gmail.com или редко @googlemail.com, остальные будут приложение Google счетом.

+0

Спасибо. Я подумал об этом, но это было очень грубо. Поэтому я подумал, есть ли другой способ. Также было другое соображение, что (whatif) меня попросили переключиться на аутентификацию OAuth. Поэтому я рассматривал способы определения этого из api. –

+0

На самом деле это не совсем так. Можно открыть учетную запись Google с любым существующим электронным письмом. Например, у меня есть учетная запись, которая является @ free.fr, которая не является доменом Google Apps. – Nivco

1

Если ваша цель - проверить, имеет ли пользователь доступ к данной функциональности, вы можете отправить запрос в ленту метаданных и проверить элементы <docs:feature>.

Например, функция с <docs:featureName>upload_any</docs:featureName> означает, что пользователь может загружать любые документы:

https://developers.google.com/google-apps/documents-list/#getting_general_information_about_a_users_account

1

Я не думаю, что есть очень хороший способ, чтобы проверить, если учетная запись является Google Учетная запись приложения.

Проверка того, отличается ли электронная почта от @ gmail.com, не будет работать, поскольку можно создать учетные записи Google с существующими адресами электронной почты.

Единственный способ, о котором я думаю, это проверить записи DNS MX в домене и посмотреть, обслуживается ли какая-либо служба домена серверами Google Apps (например, электронная почта, поданная из gmail и т. Д.), Но даже там вы можете необходимо проверить несколько сервисов, потому что некоторые компании Google Apps деактивируют Gmail (например, какую-либо другую услугу) вместо использования специального решения.

1

Предполагая, что вы вошли:

https://www.googleapis.com/auth/userinfo.email 

в ваших OAuth областей, вы можете сделать запрос по адресу:

https://www.googleapis.com/oauth2/v2/userinfo 

Если это аккаунт Служб Google, параметр "HD" (Hosted домен?) будет возвращен вызовом в домене Google Apps, поскольку это значение. Если это учетная запись пользователя, будь то @ gmail.com или даже потенциальная «конфликтующая учетная запись», параметр hd не будет возвращен. См. Мой пример ниже. [email protected] является учетной записью Google Apps, а [email protected] - это учетная запись пользователя. Если бы я создал пользователя-пользователя в домене Google Apps, он стал бы конфликтующей учетной записью, и потребительский аккаунт был бы вытеснен из пространства имен @ jay.powerposters.org, но этого еще не произошло.

Для [email protected]:

GET https://www.googleapis.com/oauth2/v2/userinfo 

HTTP/1.1 200 OK 
Content-length: 99 
X-xss-protection: 1; mode=block 
... 

{ 
"email": "[email protected]", 
"verified_email": true, 
"hd": "jay.powerposters.org" 
} 

Для [email protected]:

GET https://www.googleapis.com/oauth2/v2/userinfo 

HTTP/1.1 200 OK 
Content-length: 71 
X-xss-protection: 1; mode=block 

{ 
"email": "[email protected]", 
"verified_email": true 
} 
+0

Это должен быть принятый ответ. – RichVel