Re[26]: NNTP
От: Slov Украина http://www.helicontech.com
Дата: 03.01.02 22:48
Оценка:
Здравствуйте George_Seryakov, Вы писали:

GS>Здравствуйте Slov, Вы писали:


S>>Вот это интересный вопрос. Например ОЕ поддерживает аутентификацию по NNTP, но в RFC про это ничего не написано. Кто знает как оно реализовано?


GS>AUTHINFO, поди. rfc 2980. Я в состоянии оттрассировать NNTP, но до аутентификации еще не дошел.

В двух словах расскажи, а то влом лезть.

S>>2. Клиент просто помнит сессионные (ASP-шные) кукисы, а вся работа реализуется на базе ASP-шных сессий. Логон происходит один раз вначале работы клиента с сервером. У этого способа есть плюсы и минусы. Минус — привязка к ASP технологии (это если кто захочет продавать/распространять эту штуку потом :-) )


GS> Т.е при каждом запросе на сервер он будет спрашивать куку? Тоже можно, но надо мне обхяснить, как с куками работать.


Я подумал. Лучше вариант №2.
Никто никого не спрашивает. Попробуй оттрасировать HTTP при _первом_ обращении к ASP. Когда ты подключишься первый раз ты получишь куку. Ее нужно запомнить и передавать потом при каждом запросе на сервер. Если получаешь новую куку — запоминаешь ее и т.д. Кука — это просто HTTP заголовок Cookie, Set-Cookie и т.д. Номер RFC не помню, но не тот где HTTP.

Какой статус сообщает NNTP клиенту что нужен пароль?

А>>> Еще вопрос. А таки нам надо WinInet? Вроде XMLHTTP все, что надо обеспечивает. Или там какие-то невидимые миру слезы будут?

S>>Лучше WinInet, так ты облегчишь клиента минимум на 600кб.

GS> Если мы доклеиваем к каждому NNTP сообщению сессионную информацию (логон, текушая группа, мессадж), то надо бы XML. Или нет?


Если по варианту 2, то не надо.

S>>msgid генерится на клиенте и запоминается в нашей БД. Соотв поле в БД нужно будет добавить (и сгенерировать msgid для уже существующих сообщений). А еще не забыть генерацию этих msgid при отправке через веб :-)


GS> Пока есть только чтение, можно считать, что msgid == номер.

const="(Some GUID)@rsdn.ru";
msgid=номер+const;
WBR,
Yaroslav Govorunov
Re[28]: NNTP
От: Slov Украина http://www.helicontech.com
Дата: 03.01.02 22:48
Оценка:
Здравствуйте George_Seryakov, Вы писали:

GS> Но как все-таки мерзко выглядит программирование XML-я на голых плюсах. Да и на ВБ не лучше.

Короче, покажи свою проксю.

S>>Сейчас нумерация _сквозная_. Т.е. в каждой группе номерной ряд имеет разрывы. Это потому что мы вообще собирались отказаться от групп и ввести фильтры. Вот тебе еще одна проблема — NNTP клиент предполагает неразрывную нумерацию.


GS> Вот не нашел в стандарте такого, более того — должна же быть предусмотрена возможность для отработки cancel. Можно будет легко проверить — как OE реагирует на разрывы в последовательности.

Ну, будем надеяться :-)


S>>Сообщения посылаются через HTTP POST в том формате, как они идут от клиента (т.е. NNTP).

S>>2Игорь: Читать CDO for W2K, а в особенности IMessage.GetStream, ADODB.Stream.
S>>Схема такая:
S>>Клиент постит сообщение как обычно (NNTP), на сервер оно попадает обернутое в HTTP POST, оттуда в CDO.GetStream->Flush, дальше методами CDO разбирается и пихается в базу.
S>>При отдаче клиенту наоборот — CDO формирует сообщение, затем CDO.GetStream и в Response.BinaryWrite.
S>>Зачем так сложно? А ты хочешь разбираться с разными кодировками, MIME, UUEncode, base64 и т.п вручную?


А>>> Что я должен послать по xmlhttp.Send xmldoc, чтоб статья запостилась?

S>>Сообщение в NNTP.

GS> Аутентификация? Текущая группа,номер?


S>>А теперь самое веселое. Что будем делать, когда юзеры захотят постить месаги в HTML формате, присылать аттачменты, прилеплять картинки и т.п? :wow:


GS>А ЮЮки на что?

А причем тут к перечисленному UUE? Это ж не фидо.
Не, теоретически все это тоже реализуемо, но практически ... нафик.
WBR,
Yaroslav Govorunov
Re[23]: NNTP
От: George_Seryakov Россия  
Дата: 04.01.02 01:43
Оценка:
Здравствуйте Slov, Вы писали:


GS>>Не проблема. Т.е. предлагается такое решение: 1) никакого разбора на клиенте, 1.1) Никого слоя преобразования, 2) паковка NNTP в HTTP, 3) весь разбор и реализация логики NNTP на сервере. Пункт 3 я сделать не смогу, вы его беретесь сделать?


S>Нужно будет поставить эксперимент. Если CDO for W2K удачно разберет месагу для NNTP (она чем-то от обычной почтовой отличается?), то на сервере это будет легче делать. А вот если нет, то ой...


ОК. Убираю XMLHTTP, пихаю WinInet. Еще там куки обработать...

GS>>В таком разе XML мне без надобности, надо канализировать NNTP голым WinInet-ом, принимается.

S>Угу.

GS>>А как мне в серверном скрипте посмотреть переданные данные? Если я POST-ом все NNTP-шные команды шлю? без никакой обертки?

S>Request.Form

Убедил. А мне постом вам данные слать?

S>И поставь себе Visual InterDev или VS.NET, если хочешь ASP отлаживать.


Дык стоит. Я даже умею ASP отлажывать, точнее, умел, сейчас лениво систему настраивать. Как посмотреть элементы формы — знаю.
GS
Re[27]: NNTP
От: George_Seryakov Россия  
Дата: 04.01.02 02:36
Оценка:
Здравствуйте Slov, Вы писали:

GS>>AUTHINFO, поди. rfc 2980. Я в состоянии оттрассировать NNTP, но до аутентификации еще не дошел.

S>В двух словах расскажи, а то влом лезть.

Там много чего написано, но OE делает так:

-> AUTHINFO USER username

<- 381 Authoriszation required
-> AUTHINFO PASS password
<- 281 Authoriszation accepted

Когда пароль не нужен, отвечает сразу кодом 281, до пароля. Если неверный — 502. Есть еще PAP запрос, но я не смотрел, как там.

S>Никто никого не спрашивает. Попробуй оттрасировать HTTP при _первом_ обращении к ASP. Когда ты подключишься первый раз ты получишь куку. Ее нужно запомнить и передавать потом при каждом запросе на сервер. Если получаешь новую куку — запоминаешь ее и т.д. Кука — это просто HTTP заголовок Cookie, Set-Cookie и т.д. Номер RFC не помню, но не тот где HTTP.


Пошел читать RTFM. Это что, мне текст слов вручную парсить в поисках куки?

S>Какой статус сообщает NNTP клиенту что нужен пароль?


По идее это в ОЭ должно выставляться. Протоко предусматривает напоминание, но ОЭ его, скорее всего, не обрабатывает.
GS
Re[23]: NNTP
От: George_Seryakov Россия  
Дата: 04.01.02 14:40
Оценка:
Здравствуйте Slov, Вы писали:

S>Нужно будет поставить эксперимент. Если CDO for W2K удачно разберет месагу для NNTP (она чем-то от обычной почтовой отличается?),


Вроде, не очень. В принципе, юзнетная мессага может быть послана по обчной почте.
Поле group там в заголовке должно нас волновать. Может быть, references. Всякие dictribution, approval, followup-to — игнорировать.
GS
Re[28]: NNTP
От: Slov Украина http://www.helicontech.com
Дата: 04.01.02 23:06
Оценка:
Здравствуйте George_Seryakov, Вы писали:

GS> Там много чего написано, но OE делает так:


->> AUTHINFO USER username

GS><- 381 Authoriszation required
->> AUTHINFO PASS password
GS><- 281 Authoriszation accepted

GS> Когда пароль не нужен, отвечает сразу кодом 281, до пароля. Если неверный — 502. Есть еще PAP запрос, но я не смотрел, как там.


Короче, можешь привести пример общения ОЕ с сервером включая авторизацию? Лучше если пример будет с вариантами и т.п. Да, и в своей проксе убери КОМ и сделай как я говорил — все запросы от ОЕ передаешь через HTTP POST в исходном виде, ответ получаешь прямо документом Content-Type: text/plain короче тупая прокся (но не забудь про сессионную куку).
WBR,
Yaroslav Govorunov
Re[29]: NNTP
От: George_Seryakov Россия  
Дата: 04.01.02 23:41
Оценка:
Здравствуйте Slov, Вы писали:

S>Короче, можешь привести пример общения ОЕ с сервером включая авторизацию? Лучше если пример будет с вариантами и т.п.


Сейчас — нет. Это проблема написания тупого ответчика, будет решена при отладке прокси. Посколько прокси мы переписываем на WinInet, которого я не знаю, все это затягивается.

S>Да, и в своей проксе убери КОМ и сделай как я говорил — все запросы от ОЕ передаешь через HTTP POST в исходном виде, ответ получаешь прямо документом Content-Type: text/plain короче тупая прокся (но не забудь про сессионную куку).


Читаю WinInet, ждите. Либо пришлите работающий кусок кода с примером использования WinInet нужным мне способом. А то все эти хендлы, флаги и контексты в глазах так и рябят. А тут еще тикет и каминное стекло разбилось...
GS
Re[30]: NNTP
От: Slov Украина http://www.helicontech.com
Дата: 06.01.02 11:11
Оценка:
Здравствуйте George_Seryakov, Вы писали:

GS>Читаю WinInet, ждите. Либо пришлите работающий кусок кода с примером использования WinInet нужным мне способом. А то все эти хендлы, флаги и контексты в глазах так и рябят. А тут еще тикет и каминное стекло разбилось...

http://www.rsdn.ru/article/?inet/wininet.xml
Автор(ы): Игорь Ткачёв
Дата: 03.08.2001

Это подойдет?
Там как раз и класс неплохой имеется
WBR,
Yaroslav Govorunov
Re[31]: NNTP
От: George_Seryakov Россия  
Дата: 07.01.02 05:42
Оценка:
Здравствуйте Slov, Вы писали:

S>Здравствуйте George_Seryakov, Вы писали:


GS>>Читаю WinInet, ждите. Либо пришлите работающий кусок кода с примером использования WinInet нужным мне способом. А то все эти хендлы, флаги и контексты в глазах так и рябят. А тут еще тикет и каминное стекло разбилось...

S>http://www.rsdn.ru/article/?inet/wininet.xml
Автор(ы): Игорь Ткачёв
Дата: 03.08.2001

S>Это подойдет?

Подойдет. А вот еще есть у меня такое подозрение, что XMLHTTP перекрывает wininet для большинства неизвратных случаев.

S>Там как раз и класс неплохой имеется


Класс правильный. (Правильный класс при создании должен делать почти большую часть (в идеале — всю) работу.)

ГС
GS
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.