2013-11-02 2 views
3

Как я читал здесь, можно добавить области действия к методу аутентификации facebook (How to access Facebook private information by using ASP.NET Identity (OWIN)?).MVC 5 OWIN Authentication (Google Scopes)/Identity без EF

Мое требование - запрашивать дополнительные области действия из google (например, «https://www.googleapis.com/auth/userinfo.email»).

В моем текущем приложении MVC4 это реализовано с помощью пользовательского OAuth2Client и SimpleMembership Provider (обычная реализация Nhibernate).

Более того, можно ли создать пользовательскую реализацию ASP.NET Identity без Entity Framework? Я не очень уверен в использовании двух разных технологий (Nhibernate, EF) для доступа к моей базе данных.

+0

Я также хочу переключиться с EF на NHibernate с идентификатором MVC 5 ... Вы выяснили, как это сделать? –

+0

Это очень возможно с установкой RTM - это было намного сложнее с бета-версиями. Я прототипировал библиотеку, чтобы сделать это, но пока не готов к прайм-тайм, и у меня нет времени на то, чтобы работать над этим прямо сейчас. Здесь есть еще одна реализация - https://github.com/milesibastos/NHibernate.AspNet.Identity - она ​​также доступна в виде пакета NuGet. Я сам не пробовал, но он выглядит достаточно простым для использования. –

ответ

3

Я изучаю это, и мне не кажется, что в любом случае можно обработать это из существующего пакета nuget Microsoft.Owin.Security.Google.

Мне удалось получить полномасштабную работу, загрузив источник из Codeplex, http://katanaproject.codeplex.com/SourceControl/latest#src/Microsoft.Owin.Security.Google/GoogleAuthenticationHandler.cs и перекомпилировав его. Я добавил три строки в конечной точку авторизации в GoogleAuthenticationHanlder:

"&openid.ns.ext2=" + 
Uri.EscapeDataString("http://specs.openid.net/extensions/oauth/1.0") + 
"&openid.ext2.consumer=" + 
Uri.EscapeDataString(requestPrefix.Replace("https://", "").Replace("http://", "")) + 
"&openid.ext2.scope=" + 
Uri.EscapeDataString("https://www.googleapis.com/auth/glass.timeline https://www.googleapis.com/auth/userinfo.profile") 
        ; 

Третья линия осциллографы, и действительно должна быть добавлена ​​в качестве свойства на GoogleAuthenticationOptions и объединена в пространстве с разделителями списка областей.

В любом случае добавление выше работало для меня. Надеюсь, кто-то поставит это вместе в более полный пакет nuget (обработка токенов обновления и т. Д.). Я мог бы попробовать себя, если никто другой не сделает.

Смежные вопросы