VBA Visio функционируют, чтобы видеть, существует ли форма в передней стороне/позади формы

Во-первых, IP-адрес, который видит ваш сервер, часто не является фактическим IP-адресом компьютера, на котором находится пользователь, поскольку между ними часто находится устройство NAT или прокси-сервер, который сопоставляет IP-адрес частной сети компьютера пользователя с общедоступный IP-адрес для использования в Интернете. Это будет верно, если вы используете компьютер в своей домашней сети, используете компьютер на работе, подключаетесь через Wi-Fi в Starbucks и т. Д.

User Computer (private IP 192.168.1.x) => Gateway (some public IP address) => Your server

Если один и тот же компьютер подключен к вашему серверу снова и снова одним и тем же способом, ему «может» назначаться один и тот же публичный IP-адрес каждый раз, когда он это делает. Но при других обстоятельствах это не может быть.

Если один и тот же компьютер является мобильным (телефон, ноутбук, планшет) и подключается к Интернету по-разному (WiFi, сотовый), то он может отображаться как другой IP-адрес каждый раз, когда он подключается из другого места.

Таким образом, в наши дни множество мобильных устройств и пользователей, которые могут даже получить доступ к услуге с более чем одного устройства, IP-адрес просто НЕ является хорошей мерой того, является ли это риском или нет.

Кроме того, в случае использования общего NAT, такого как «горячая точка доступа Wi-Fi» или подключение из корпоративной сети, многие пользователи могут показаться с одного и того же публичного IP-адреса.

Я бы не советовал использовать IP-адрес в качестве индикатора безопасности. Вы просто получите много ложных индикаторов неверного IP-адреса, который изменился с момента последнего доступа, и вы даже можете получить ложные срабатывания, когда другой пользователь появляется на том же IP-адресе, что и законный пользователь. В наши дни NAT и мобильности не существует однозначного соответствия между публичным IP-адресом и пользователем. Попытка притвориться, что есть, вызовет всевозможные проблемы.

5
задан JimmyPena 22 November 2011 в 16:34
поделиться

1 ответ

Форма. Свойство SpatialRelation скажет Вам, если две формы затронут. Форма. Индексное свойство скажет Вам, который является впереди или позади в z-порядке.

Вот простой пример:

Public Sub DoShapesIntersect(ByRef shape1 As Visio.Shape, ByRef shape2 As Visio.Shape)

    '// do they touch?
    If (shape1.SpatialRelation(shape2, 0, 0) <> 0) Then

        '// they touch, which one is in front?
        If (shape1.Index > shape2.Index) Then
            Debug.Print shape1.Name + " is in front of " + shape2.Name
        Else
            Debug.Print shape1.Name + " is behind " + shape2.Name
        End If
    Else
        Debug.Print "shape1 and shape2 do not touch"
    End If

End Sub

Читайте больше здесь:

Форма. Свойство SpatialRelation на MSDN

4
ответ дан 15 December 2019 в 01:15
поделиться
Другие вопросы по тегам:

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