1С: Предприятие 8.3 / Определение IP адреса веб-клиента.

Определение IP адреса веб-клиента на стороне веб сервера, с использованием default.aspx на С#.

Режим клиент-сервер MS SQL.

Публикация на IIS 7.5

.Net  вер 4.0

Код asp страницы (default.aspx):

<%@ Page Language="C#" %>

<!DOCTYPE html>
<script runat="server">

protected void Page_Load(object sender, EventArgs e)
{
var ClientIP = Page.Request.UserHostAddress;
launchparameter.Value = ClientIP;
}

</script>


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
#launchparameter {
height: 22px;
}
</style>
</head>
<body>
<form id="form1" action="https://xx.x.x.x:444/1C83Testing/e1cib/start" method="post" runat="server">
Имя пользователя:
<input id="usr" type="text" runat="server" />
<p>
Пароль:
<input id="pwd" type="password" runat="server" />
</p>
<p>
Ваш IP адрес:
<input id="launchparameter" type="text" readonly="true" runat="server"  />
</p>
<input type="submit" value="OK" runat="server" />
</form>
<p>
</p>
</body>
</html>

где launchparameter — доступен в модуле приложения как ПараметрЗапуска.

В модуль приложения развернутой на web-сервере базы 1С нужно добавить:

Процедура ПередНачаломРаботыСистемы(Отказ)

ТекПользователь=ОбщийМодульСервер.ПолучитьТекПользователя();

Если ЗначениеЗаполнено(ПараметрЗапуска) Тогда
ПоказатьОповещениеПользователя(ПараметрЗапуска , , ТекПользователь, БиблиотекаКартинок.КомпьютерКлиент );
Иначе
ПоказатьОповещениеПользователя("Параметра запуска нет.", , ТекПользователь, БиблиотекаКартинок.КомпьютерКлиент );
КонецЕсли;

КонецПроцедуры

В IIS создается приложение Start1C, туда кидается файл default.aspx и все.

Файл web.config:

<?xml version="1.0"?>

<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->

<configuration>

<system.web>
<compilation targetFramework="4.0" />
</system.web>

</configuration>

Буду рад, если кому-то окажется полезным.

2 Comments

  1. wunderland

    Очень интересно. При случае обязательно попробую. В свое время искал как это сделать, но безрезультатно…

    Reply
  2. shmellevich

    Для почитателей Apache+PHP все сводится к одному файлу index.php:

                Ваш IP адрес:
    <input id=»LaunchParameter» type=»text» readonly=»true» value=»<?=$_SERVER[‘REMOTE_ADDR’]?>»  />
    

    Это место которое отличается от авторского для получения IP клиента

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *