Задача стоит следующая. Сотрудник со своего компьютера заходит на страничку в интранете
и просматривает там свой расчетный листок с зарплатой.
Зарплата рассчитывается в 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