Получение расчетного листка через интранет
Задача стоит следующая. Сотрудник со своего компьютера заходит на страничку в интранете
и просматривает там свой расчетный листок с зарплатой. Зарплата рассчитывается в 1С 8.1 Зарплата и Управление персоналом. Решена задача следующим образом. Сотрудник заходит на ссылку http://srvname/1C_Web_Service/payslip.htm В payslip.htm следующий код <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <script language="JavaScript1.1" type="text/javascript"> <!-- wsh = new ActiveXObject( "WScript.Shell" ); Curlogin = wsh.ExpandEnvironmentStrings("%USERNAME%"); location.replace("http://srvname/1C_Web_Service/paysliprequest.asp?login="+Curlogin+"&password=&submit=Submit"); //--> </script> </head> </html> В htm определяется логин Windows пользователя, который передается в paysliprequest.asp. В файле paysliprequest.asp следующий код: <%@ Language=javascript %> <% { try { SoapClient = new ActiveXObject("MSSOAP.SoapClient") SoapClient.mssoapinit("http://srvname/ws/payslipinfo.wsdl") Response.Write(SoapClient.GetHtml(Request.QueryString("login")(1), Request.QueryString("password")(1))) } catch(err) { entConn = new ActiveXObject("v81.comconnector"); conn = entConn.connect("Srvr=srvname;Ref=hrm;Usr=WebAccess"); Response.Write(conn.GethtmlCom(Request.QueryString("login")(1),Request.QueryString("password")(1))); conn =""; entConn = ""; } } %> Сначала пытаемся получить расчетный листок через SOAP web-сервис, который предоставляет 1С. Если не получается, то коннектимя к 1С через COM соединение. Внутри 1С на основании логина windows сотрудника находится его расчетный листок и возвращается в html. Решение имеет серьезный недостаток. При переадресации на paysliprequest.asp пользователь видит строчку: http://srvname/1C_Web_Service/paysli...ubmit =Submit Соответственно можно просто в адресной строке подставить чужой логин и получить расчетный листок другого сотрудника. Подскажите, каким образом лучше эту проблему решить. Можно раздать пароли, но это означает лишнюю работу. В идеале хотелось бы обойтись одним логином Windows, но так, чтобы со своего компьютера сотрудник мог получить только свой расчетный листок. ЗЫ Payslip.htm и Paysliprequest.asp размещены на IIS 6.0 Сеть на домене Windows |
А получить в asp логин текущего подключенного пользователя и сравнить его с полученным через ActiveX в браузере нельзя? Просто я не сильно знаком с asp.
|
Думаю, что можно.
Подскажите метод. |
Часовой пояс GMT +3, время: 22:46. |