使用ASP.Net MVC4网站时,使用SimpleMembership添加OAuth身份验证非常容易。
OAuthWebSecurity.RegisterTwitterClient(consumerKey,consumerSecret);
在客户端设备上使用Azure移动服务时,可以非常轻松地添加OAuth身份验证。
await App.MobileService.LoginAsync(MobileServiceAuthenticationProvider.Twitter);
问题是这些是两个不同的数据存储。我需要用户能够从应用程序或站点注册和/或登录。从设备和ASP.Net站点提供集成OAuth身份验证的最佳/最简单方法是什么?有样品吗?
答案 0 :(得分:3)
当Azure移动服务和MVC SimpleMembership在播放时,我只能通过Twitter和Facebook登录来实现这一目标。请看这个线索,它确实有很多需要仔细研究,但它确实很详细地解释了我的发现。
很抱歉,我无法为您提供任何代码,因为我的目标是不为此集成编写任何身份验证/安全代码。
内特
答案 1 :(得分:0)
我刚刚发布了一个使用ASP.NET MVC4简单成员身份的示例,以便在http://blogs.msdn.com/b/carlosfigueira/archive/2013/06/25/exposing-authenticated-data-from-azure-mobile-services-via-an-asp-net-mvc-application.aspx向Azure移动服务(在我的示例中通过Facebook)进行身份验证。该帖子包含许多细节,但其想法是,如果您可以获得提供者访问令牌(例如,来自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;
}
});
}