【发布时间】:2013-11-03 10:04:25
【问题描述】:
我正在开发一个 Windows Phone 8 应用程序和一个 ASP.NET MVC 5 网站,每个网站都将访问 WebApi 服务 (WebApi 2)。该网站和 WebApi 基于 VS2013 RTM 提供的模板,并已使用项目模板中提供的“个人帐户”身份验证选项进行设置。
模板设置WebApi项目启用不记名令牌、应用cookies和外部登录cookies等,并且暴露的action带有Authorize属性。
我的两个问题是:
1) 如果我要使用 Azure 移动服务在 WP8 应用程序上使用 Google/Twitter 对用户进行身份验证,我如何才能让 WebApi 允许经过身份验证的用户访问操作?
2) 与 #1 相同,但从 ASP.NET MVC 5 网站的角度来看?
据我所知,似乎每个请求都需要一个不记名令牌。要获取此令牌,我是否认为我将访问 WebApi 公开的“令牌”端点以获取令牌并且需要随每个请求一起传递?
【问题讨论】:
-
为什么在这种情况下使用 Azure 移动服务?您可以使用 OWIN 外部身份验证中间件从 google/twitter 登录用户。它是您问题中的必需组件吗?
-
移动服务的主要原因是它管理浏览器的加载以向用户请求提供者凭据。该计划是针对某个时间点的 Windows 8 应用程序,在这种情况下,我将使用 WebAuthenticationBroker。基本上我只是不确定应用程序、提供程序(Goolgle/Twitter)和 WebApi 之间的流程。
-
看来您只是错过了手机应用程序中的 WebAuthenticationBroker。您无需为此设置移动服务。您可以只使用移动服务 sdk 代码来启动浏览器控件,并且可以将其指向您的 Web api 端点。 sdk 代码是开源的。你可以在github.com/WindowsAzure/azure-mobile-services/blob/master/sdk/…找到它
标签: asp.net-web-api asp.net-mvc-5