Azure移动服务与MVC4 SimpleMembership

时间:2013-05-13 14:36:00

标签: asp.net-mvc-4 oauth simplemembership azure-mobile-services

使用ASP.Net MVC4网站时,使用SimpleMembership添加OAuth身份验证非常容易。

OAuthWebSecurity.RegisterTwitterClient(consumerKey,consumerSecret);

在客户端设备上使用Azure移动服务时,可以非常轻松地添加OAuth身份验证。

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

问题是这些是两个不同的数据存储。我需要用户能够从应用程序或站点注册和/或登录。从设备和ASP.Net站点提供集成OAuth身份验证的最佳/最简单方法是什么?有样品吗?

2 个答案:

答案 0 :(得分:3)

当Azure移动服务和MVC SimpleMembership在播放时,我只能通过Twitter和Facebook登录来实现这一目标。请看这个线索,它确实有很多需要仔细研究,但它确实很详细地解释了我的发现。

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

很抱歉,我无法为您提供任何代码,因为我的目标是不为此集成编写任何身份验证/安全代码。

内特

答案 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;
                }
            });
        }