2014-10-29 80 views
1

我有一個Xamarin移動應用程序,它使用Azure移動服務SDK來針對社交提供者驗證用戶。我得到令牌並將其附加到http請求中,作爲持票人令牌,將我的Web API ASP.NET應用程序(我正在部署爲Azure Cloud Service)附加到該應用程序中。Azure移動服務令牌驗證在Web API和MVC

我需要驗證持票人令牌並獲取ClaimsIdentity以在我的ApiController中使用。我是否需要爲此使用Mobile Service .NET後端nuget包?我怎麼能夠?

編輯:

  1. 添加創建一個Web API控制器

  2. 安裝的移動服務.NET後端NuGet包

  3. 設置的AppSettings值的鍵MS_MobileServiceName一個空的ASP.NET應用程序, MS_MasterKey, Azure管理控制檯中的值MS_ApplicationKey

  4. 設置[AuthorizeLevel(AuthorizationLevel.User)]在我ApiController我HTTPGET操作

  5. 演員表的,以ServiceUser

  6. 創建與谷歌驗證承載令牌通天青 移動服務SDK

  7. HTTP請求
  8. 用戶爲空!

回答

0

使用屬性,如

[AuthorizeLevel(AuthorizationLevel.Anonymous)] 

[AuthorizeLevel(AuthorizationLevel.User)] 

在您的API中的方法取決於你想要的角色進行驗證。

然後使用

var currentUser = User as ServiceUser; 

獲得當前用戶的方法,如果AuthorizationLevel不是匿名。

並根據需要設置您的AppSettings。如果您正在測試本地主機上的MobileService,請更改MasterKey和ApplicationKey。

<appSettings> 
    <!-- Use these settings for local development. After publishing to 
    Mobile Services, these settings will be overridden by the values specified 
    in the portal. --> 
    <add key="MS_MobileServiceName" value="[NAME HERE]" /> 
    <add key="MS_MasterKey" value="[INSERT HERE]" /> 
    <add key="MS_ApplicationKey" value="[INSERT HERE]" /> 
    <add key="MS_MicrosoftClientID" value="Overridden by portal settings" /> 
    <add key="MS_MicrosoftClientSecret" value="Overridden by portal settings" /> 
    <add key="MS_FacebookAppID" value="Overridden by portal settings" /> 
    <add key="MS_FacebookAppSecret" value="Overridden by portal settings" /> 
    <add key="MS_GoogleClientID" value="Overridden by portal settings" /> 
    <add key="MS_GoogleClientSecret" value="Overridden by portal settings" /> 
    <add key="MS_TwitterConsumerKey" value="Overridden by portal settings" /> 
    <add key="MS_TwitterConsumerSecret" value="Overridden by portal settings" /> 
    <add key="MS_AadClientID" value="Overridden by portal settings" /> 
    <add key="MS_AadTenants" value="Overridden by portal settings" /> 
    <!-- When using this setting, be sure to also set the Notification Hubs connection 
    string named "MS_NotificationHubConnectionString". --> 
    <add key="MS_NotificationHubName" value="Overridden by portal settings" /> 
    <add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=sb://[your namespace].servicebus.windows.net;SharedSecretIssuer=owner;SharedSecretValue=[your secret]" /> 
    </appSettings> 
+0

當然我必須設置某種身份驗證提供的在我的WebApiConfig,並把我的主密鑰在什麼地方,對吧? – 2014-10-29 03:35:10

+0

那麼你需要NuGet的Azure移動服務.NET後端包。 Master和ApplicationKey存儲在Web.Config中。但就是這樣。 – 2014-10-29 03:41:59

+0

你能否提供一些代碼示例來做到這一點?我沒有找到如何註冊WebApiConfig。 – 2014-10-29 12:54:18

相關問題