我目前正在使用httplistener authenticationselector委托(delegate)进行Windows身份验证和ip检查,它的工作非常出色,因为它拒绝并允许应有的客户端。

但是,问题在于,当有人被拒绝时,他们会收到403 http响应,这似乎被大多数浏览器解释为黑屏。我想做的是发回一条消息,说“访问被拒绝:您的IP已被列入白名单”。

这可能吗?

下面是该代表的一个片段(目前可以正常运行)。

AuthenticationSchemeSelector pIPChecker = pRequest =>
{
    if (!pfunIPChecker(pRequest.RemoteEndPoint.Address))
    {
        LogHelper.writeToEventLog(
            "WARNING, BANNED IP: " + pRequest.RemoteEndPoint.Address.MapToIPv4().ToString() + "attempted to login",
            EventLogEntryType.Warning,
            LogHelper.EventLogID.PermissionFailure);

        return AuthenticationSchemes.None;
    }

    return AuthenticationSchemes.Anonymous;
}

最佳答案

正如X39所指出的那样,执行此操作的唯一方法似乎是而不是来使用Authenticator委托(delegate),而是实际上按常规方式读入请求,然后将所需的内容发送回403。

关于c# - 在httplisteners authenticationselectordelegate中提供身份验证被拒绝的消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56037162/

10-13 08:06