Как сделать клиент Silverlight, знающий о IP-адресе пользователя

iPhone Simulator помогает протестировать Ваши приложения с помощью питания и удобства настольного или портативного компьютера. Хотя, Ваш компьютер разработчика не может моделировать сложные сенсорные события, такие как касания мультипальца , Средство моделирования позволяет Вам выполнить повышения. Для выполнения повышения держите Опцию при ответвлении на экране Simulator.

10
задан Ben McCormack 1 September 2009 в 12:28
поделиться

3 ответа

Поработав над этим проектом некоторое время, я думаю, что нашел более простое решение, если разместить его на странице ASP.net.

<body>
    <form id="form1" runat="server" style="height:100%">
    <div id="silverlightControlHost">
       <object id="SilverlightPlugin" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">

       <param name="source" value="ClientBin/VideoPlayer.xap"/>
       <param name="onload" value="onload" />
       <param name="initParams" value="txtUserIP=<%=Request.UserHostAddress %>,cc=true,m=/relative"/>
       <param name="onError" value="onSilverlightError" />
       <param name="background" value="white" />
       <param name="minRuntimeVersion" value="3.0.40624.0" />
       <param name="autoUpgrade" value="true" />
       <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none">
        <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
       </a>
        </object>    
    </div>
    </form>
</body>

Я предпочитаю использовать initParams с ASP < % = Запросить ... прямо в коде, а не возиться с JavaScript для изменения элемента управления в приложении Silverlight. После передачи его в InitParams вы можете загрузить значения в словарь ресурсов приложения. Я подробно описываю все это в своем сообщении в блоге: Передайте IP-адрес пользователя в Silverlight в качестве параметра (ПРИМЕЧАНИЕ. Если ссылка на мой веб-сайт на benmccormack.com не работает, вы возможно, придется перейти непосредственно на сайт и найти его. Я опубликовал рецензию от 26.09.2009) .

6
ответ дан 4 December 2019 в 01:57
поделиться

Вы не можете получить IP-адрес клиентской машины, используя какие-либо механизмы на стороне клиента (javascript, silverlight и т. д.) .

Майкл Синк опубликовал интересную статью о том, как получить информацию о клиенте из silverlight. silverlight-2-beta1-url-referrer-screen-resolution-clients-data-time-and-ip-address ].

этот подход должен работать .. Но есть и ограничение

Он не сможет получить реальный адрес, если прокси-сервер скрывается эти адреса.

2
ответ дан 4 December 2019 в 01:57
поделиться

Имейте кусок кода в вашем aspx-файле, в котором размещен элемент управления silverlight

var ip = '<% = Request.UserHostAddress%>'

, затем подключите событие onload и установите IP в свой класс silverlight

function onload() {
            control = document.getElementById(
                    'SilverlightPlugin'
                  );
            iptextblock = control.Content.FindName("txtIP");
            iptextblock.Text = ip;
        }

<object id="SilverlightPlugin"  data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
    <param name="source" value="ClientBin/SilverlightApplication1.xap"/>    
    <param name="onload" value="onload" />

, если ваша страница хоста Silverlight размещена в Apache, попробуйте этот сервер Apache:

var ip = '<!--#echo var="REMOTE_ADDR"-->';
1
ответ дан 4 December 2019 в 01:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: