4

При использовании сайта ASP.Net MVC4 очень легко добавить аутентификацию OAuth с помощью SimpleMembership.Azure Mobile Services vs MVC4 SimpleMembership

OAuthWebSecurity.RegisterTwitterClient(consumerKey,consumerSecret); 

При использовании Azure Mobile Services на клиентском устройстве очень легко добавить аутентификацию OAuth.

await App.MobileService.LoginAsync(MobileServiceAuthenticationProvider.Twitter); 

Проблема в том, что это два разных хранилища данных. Мне нужно, чтобы пользователи могли зарегистрироваться и/или войти в систему из приложения или сайта. Каков наилучший/простой способ обеспечения интегрированной аутентификации OAuth с устройств и сайта ASP.Net? Имеются ли образцы?

ответ

3

Я смог достичь этого только с помощью входа в Twitter и Facebook, когда в игре играли Azure Mobile Services и MVC SimpleMembership. Пожалуйста, посмотрите эту тему, которая, по общему признанию, имеет много возможностей для изучения, но это объясняет мои выводы довольно неплохо.

http://social.msdn.microsoft.com/Forums/en-US/azuremobile/thread/d54d28c6-6941-4af5-b116-dc8c51820498

К сожалению, я не могу дать вам какой-либо код, потому что моя заявленная цель состояла в том, чтобы не писать код аутентификации/безопасности для этой интеграции.

Nate

0

Я только что закончил размещение образца, который использует ASP.NET MVC4 простое членство для аутентификации на Mobile Service Azure (через Facebook, в моем примере) в http://blogs.msdn.com/b/carlosfigueira/archive/2013/06/25/exposing-authenticated-data-from-azure-mobile-services-via-an-asp-net-mvc-application.aspx. Сообщение содержит много деталей, но идея состоит в том, что если вы можете получить токен доступа поставщика (например, от Facebook или Google), вы можете отформатировать его и отправить в мобильную службу поддержки. В нижеприведенном фрагменте токен facebook хранился в состоянии сеанса и извлекается с помощью метода, который гарантирует, что пользователь выполнил вход в систему.

 if (MobileService.CurrentUser == null) 
     { 
      var accessToken = Session["facebooktoken"] as string; 
      var token = new JObject(); 
      token.Add("access_token", accessToken); 
      return MobileService.LoginAsync(MobileServiceAuthenticationProvider.Facebook, token).ContinueWith<bool>(t => 
      { 
       if (t.Exception != null) 
       { 
        return true; 
       } 
       else 
       { 
        System.Diagnostics.Trace.WriteLine("Error logging in: " + t.Exception); 
        return false; 
       } 
      }); 
     } 
Смежные вопросы