我试图通过URL上的API密钥编写一个简单的自定义AuthProvider进行身份验证。我的代码基于BasicAuthProvider。
然而,我发现,在进行任何更改之前,运行BasicAuthProvider中的代码,每次 authService.Post( authService.Post时,都会递归调用 PreAuthenticate()方法。 )方法被称为:
public void PreAuthenticate(IRequest req, IResponse res)
{
SessionFeature.AddSessionIdToRequestFilter(req, res, null);
var userPass = req.GetBasicAuthUserAndPassword();
if (userPass != null)
{
var authService = req.TryResolve<AuthenticateService>();
authService.Request = req;
//** Post calls PreAuthenticate again **//
var response = authService.Post(new Authenticate
{
provider = Name,
UserName = userPass.Value.Key,
Password = userPass.Value.Value
});
}
}
有人可以解释为什么会这样吗?
感谢。