Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure移动服务和Web API身份验证_C#_Asp.net Mvc_Asp.net Web Api_Azure Mobile Services - Fatal编程技术网

C# Azure移动服务和Web API身份验证

C# Azure移动服务和Web API身份验证,c#,asp.net-mvc,asp.net-web-api,azure-mobile-services,C#,Asp.net Mvc,Asp.net Web Api,Azure Mobile Services,我正在开发一个Web API,并希望在允许调用Web API之前使用Azure移动服务对用户进行身份验证 因此,用户将导航到一个网站,选择使用他们的Google/Facebook/etc帐户登录,并使用移动服务JavaScript客户端对用户进行身份验证。据我所知,移动服务将以JSON Web令牌的形式返回身份验证令牌 我想做的是,当网站调用Web API时,它将传递身份验证令牌,Web API将检查它是否是移动服务颁发的有效令牌,如果一切正常,则允许执行调用 所以我的问题是…这可能吗?如果是这

我正在开发一个Web API,并希望在允许调用Web API之前使用Azure移动服务对用户进行身份验证

因此,用户将导航到一个网站,选择使用他们的Google/Facebook/etc帐户登录,并使用移动服务JavaScript客户端对用户进行身份验证。据我所知,移动服务将以JSON Web令牌的形式返回身份验证令牌

我想做的是,当网站调用Web API时,它将传递身份验证令牌,Web API将检查它是否是移动服务颁发的有效令牌,如果一切正常,则允许执行调用

所以我的问题是…这可能吗?如果是这样,是否可以使用在Web API端执行验证?

是的,这是可能的

如果您使用MobileServiceClient执行登录,您将获得一个令牌,您可以将该令牌与每个请求一起传递给Web Api端点

var client = new WindowsAzure.MobileServiceClient('https://yourservice.azure-mobile.net', 'your-client-key');
client.login('facebook').then(success);

function success(result) {
    alert('login ok');
}
因此,在发出请求时,将标题“X-ZUMO-AUTH”的值设置为成功登录后在
client.currentUser.mobileServiceAuthenticationToken
中找到的当前用户令牌

在服务器端,将属性
[AuthorizationLevel(AuthorizationLevel.User)]
添加到需要对用户进行身份验证的Web Api方法中。就这些


但是,请确保在WAMS上以及您想要集成的提供商端(客户端id、客户端机密、回调URL等)正确配置了该标识。

我们可以获得关于此服务器配置的更多详细信息吗?当然是在Azure控制台上?