我正在实现一些与使用RFC2617扩展的网络服务器对话的代码。 为了实现这一点,我实施了一个IAuthenticationManager模块。
我的身份验证模块会检查收到的质询是否适用于MyAuth:
public Authorization Authenticate(String challenge, WebRequest request, ICredentials credentials)
{
if (!challenge.Contains(AuthenticationType)) // MyAuth
{
{
return null;
}
}
...
// Get the token, omitted here
return authorization;
然后我致电AuthenticationManager.Register(MyAuthModule);
当WebRequest有UseIntegrated.UseDefaultCredentials = true
或请求已将凭据添加到WebRequest.Credentials
时,我的身份验证模块将被调用,一切正常。但是,如果WebRequest没有凭据且未使用默认凭据,则不会调用我的授权模块,并且请求将失败。
如果收到质询但WebRequest没有凭据且未使用默认凭据,我如何确保调用我的身份验证模块?
答案 0 :(得分:1)
看起来请求是以匿名方式进入的。 您可以通过处理匿名请求来验证是否是这种情况,如其解释的那样 here
如果它作为匿名请求进入,您可以尝试在Web服务器上禁用它,因为这会强制所有请求发送身份验证标头。