使用个人用户帐户的Azure移动服务.net后端身份验证

本文关键字:移动 Azure 服务 net 身份验证 后端 用户 | 更新日期: 2023-09-27 18:14:04

我有一个使用个人用户帐户的现有ASP.net Web API。

我用它来注册/更改密码/登录等。当我登录时,我收到一个令牌,然后使用这个令牌访问[Authorize]控制器。


(授权)公共类ValuesController: ApiController

我已经添加了控制器,数据对象,启动。MobileApp和AppNameApiContext从TODO .net后端Azure移动应用程序到我当前的API。

即TodoController: tableccontroller

这适用于同步/插入等,但如果我将[authorization]添加到控制器,即使我发送与其他API端点使用的相同令牌,它也将始终返回未经授权。

所有的例子我可以找到使用"自定义身份验证Azure移动应用程序"使用Microsoft.Azure.Mobile.Server.Authentication。

我如何使用相同的登录/令牌为两者提供身份验证(ValuesController: ApiController)和(TodoController: tableccontroller)

万分感谢

我正试图找到一个解决方案,如

app.UseAppServiceAuthentication(new AppServiceAuthenticationOptions
            {
                SigningKey = signingKey,
                ValidAudiences = new[] { hostName },
                ValidIssuers = new[] { hostName },
                TokenHandler = new MyClass (config)
            });

public class MyClass : AppServiceTokenHandler
{
  public override bool TryValidateLoginToken
  (string token,
   string signingKey,
   IEnumerable<string> validAudiences,
   IEnumerable<string> validIssuers,
   out ClaimsPrincipal claimsPrincipal)
  {
     if (CheckIfUserIsAuth(token))
     {
       return true;
     }
     // Or something like 
     // if(token== CurrentUserToker)
     //  { return true};
  }
}

但是我仍然收到未授权,无论我返回true还是false

使用个人用户帐户的Azure移动服务.net后端身份验证

不幸的是,你一开始就错了。您需要从Azure移动应用程序启动。其中包含必要的逻辑,可以使用EasyAuth从移动设备进行身份验证。我建议从教程开始——它有你选择的前端和后端。然后可以根据需要展开