我正在尝试使用来实现自定义身份验证LoginAsync(string provider, JObject token)
MobileServiceClient 的重载。我有一个像这样的自定义身份验证控制器
[MobileAppController]
public class CustomAuthController : ApiController
{
public async Task<IHttpActionResult> Post([FromBody] JObject assertion)
{
...
}
}
在后端启动内部我设置了路线
config.Routes.MapHttpRoute("CustomAuth", ".auth/login/CustomAuth",new { controller = "CustomAuth" });
在客户端,调用是:
var credentials = new JObject
{
["email"] = username,
["password"] = password
};
MobileServiceUser user;
try
{
user = await MobileService.LoginAsync("CustomAuth", credentials);
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
throw;
}
我认为一切都是正确的,但我无法使用 LoginAsync 方法调用控制器(在调试中我在控制器的第一条指令上设置了断点)。
我什至看不到异常,因为它从未到达 catch 块。
但我可以使用 Postman 向 CustomAuthController 发送请求,在这种情况下,达到了调试断点...
我不明白为什么!!
我正在尝试调试 LoginAsync (使用 MobileServiceTokenAuthentication)反编译代码,但没有成功...请帮助!
在后端,我的自定义身份验证是使用 auth0 委托 api 进行的。
您需要删除[MobileAppController]
来自控制器代码的属性。此属性添加了一个要求,即调用包含版本标头,并且客户端 SDK 不会为登录方法发送这些标头。或者,您可以在客户端上使用委托处理程序来注入此标头,但服务器端的更改将涉及更少的代码。在自定义身份验证的上下文中,该属性没有提供我能想到的任何好处,因此应该可以安全地删除它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)