我有一个使用个人用户帐户的现有ASP.net Web API。
我用它来注册/更改密码/登录等。 当我登录时,我收到一个令牌,然后使用令牌访问[授权]控制器。
即。
[授权]
public class ValuesController:ApiController
我已将Azure移动应用程序的TODO .net后端中的Controllers,DataObjects,Startup.MobileApp和AppNameApiContext添加到我当前的API中。
即 public class TodoController:TableController
这适用于同步/插入等。但如果我将[授权]添加到控制器,它将始终返回未授权,即使我发送与其他API端点使用的相同令牌。
我可以使用“Azure移动应用程序的自定义身份验证”找到的所有示例 使用Microsoft.Azure.Mobile.Server.Authentication。
如何使用相同的登录/令牌为两者提供身份验证(ValuesController:ApiController) 和 (TodoController:TableController)
非常感谢期待
我正在尝试找到像
这样的解决方案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};
}
}
但是,我仍然会收到未经授权的,不管我是否回复了。
答案 0 :(得分:0)
不幸的是,你从错误的角度出发。您需要从Azure移动应用程序开始。这具有使用EasyAuth从移动设备进行身份验证的必要逻辑。我建议从教程开始 - 它有一个前端和你选择的后端。然后,您可以根据需要进行扩展。