Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Скрипт то есть, только вот запускать его надо с правами... 11.08.06 12:29 Число просмотров: 3413
Автор: Woonder <Бученков Андрей> Статус: Member
|
Скрипт то есть, только вот запускать его надо с правами админа, тобишь в свойствах файла на вебсервере указывать на закладке "File Security" анонимный доступ не для IUSR_xxx а для Administrator
Да и прикрутить его к Logon.asp удалось только через Response.redirect("./block.asp").
Server.Transfer("./block.asp") работает всё равно в контексте owalogon.asp а он работает от имени IUSR_xxx
Response.redirect нехорош тем, что на клиентской стороне может быть настроен IE не использовать перенаправления (точно не уверен, но в голове такой вариант крутится)
Счётчик вставил в Logon.asp
Было :*********************************************************************************************************** Select Case reasonCode
Case "1"
UserText = L_LogoffUser_Text
Case "2"
UserText = L_401User_Text
Case "3"
UserText = L_RelogonUser_Text
Case Else
Стало:******************************************************************************************************* Select Case reasonCode
Case "1"
UserText = L_LogoffUser_Text
Case "2"
session("ErrLogonCount")= session("ErrLogonCount")+1
UserText = L_401User_Text+Cstr(LogonAllowed-session("ErrLogonCount"))
If session("ErrLogonCount")>=LogonAllowed then
Response.redirect("./block.asp")
'Server.Transfer("./block.asp")
end if
Case "3"
UserText = L_RelogonUser_Text
Case Else
******************************************************** В Logon.asp добавить
CONST LogonAllowed=9 ' то есть блокировка на 9 неудачной попытке
И моно подправить :
CONST L_401User_Text= "Не удалось выполнить вход в Outlook Web Access. Убедитесь, что имя и пароль пользователя указаны правильно, и повторите попытку. У вас осталось попыток :"
Так же в файле Logon.asp и owalogon.asp надо заменить:
@ ENABLESESSIONSTATE=False на @ ENABLESESSIONSTATE=True
/ExchWeb/bin/Auth/Block.asp
********************************************************************************************* <% LANGUAGE=VBSCRIPT%>
<%
Dim SecObj
Dim MyIPSec
Dim IPList,IPTempList
Set SecObj = GetObject("IIS://LocalHost/W3SVC/100/root")
Set MyIPSec = SecObj.IPSecurity
IPTempList = MyIPSec.IPDeny
Redim IPList (Ubound(MyIPSec.IPDeny)+1)
'response.write("До добавления"+"<br>")
for i=0 to Ubound(IPTempList)
IPList(i)=IPTempList(i)
'response.write(Cstr(i)+" - "+IPList(i)+"<br>")
next
IPList(Ubound(IPList)) = Request.ServerVariables("REMOTE_ADDR")+", 255.255.255.255"
'response.write("После добавления"+"<br>")
for i=0 to Ubound(IPList)
'response.write(Cstr(i)+" - "+IPList(i)+"<br>")
next
MyIPSec.IPDeny = IPList
SecObj.IPSecurity = MyIPSec
SecObj.Setinfo
%>
*************************************************************************************** Заметьте Set SecObj = GetObject("IIS://LocalHost/W3SVC/100/root")
Выполняет подключение и следовательно будет устанавливать свойства для сайта с идентификатором 100.
Если надо для Default Web Site и виртуального каталога ExchWeb то пишите:
Set SecObj = GetObject("IIS://LocalHost/W3SVC/1/root/ExchWeb")
****************************************************************************** в Скрипте IPTempList добавлен не случайно потому что простая конструкция
IPList = MyIPSec.IPDeny
Redim IPList (Ubound(MyIPSec.IPDeny)+1)
IPList(Ubound(IPList)) = "123.0.0.1, 255.255.255.255"
почему-то не работает, хотя так написано в примере от M$
Беда ещё в том, что у OWA много различных страничек для входа на разных языках,
правильнее будет подправить logon.asp из каталога /RUS и /USA, а все остальные языки удалить и подправить файлик owalogon.asp тобишь убрать лишние LangMap.Add
В общем надо ещё много додумыватть, ГУРУ ASP помогайте.
|
|
|