-3

上記の Appcode フォルダーには、BaseClass というクラスがあります。BaseClass には、IP 範囲を定義する CheckWAN() という関数があり、後で IP アドレス範囲を介してサイトへのローカル ユーザーを自動認証できます。

Public Function CheckWAN() As Boolean
    Try
        Dim url As String = Request.Url.ToString()
        'Get the client ip address
        Dim RemoteAddress As String = Request.UserHostAddress
        Dim strRemoteAddress As String = RemoteAddress
        Dim myWAN As String = "192.168.254.254"
        'add Some other ips
        Dim SOther001 As String = "192.168.254.1"
        Dim SOther002 As String = "192.168.254.2"
        Dim SOther003 As String = "192.168.254.3"
        If strRemoteAddress.Contains(myWAN) Then
            Return True
        ElseIf strRemoteAddress.Contains(SOther001) Then
            Return True
        ElseIf strRemoteAddress.Contains(SOther002) Then
            Return True
        ElseIf strRemoteAddress.Contains(SOther003) Then
            Return True
        Else
            Return False
        End If
    Catch
        Return False
    End Try
End Function

最後に、サイト default.aspx にログインをセットアップしました。これは、接続しているユーザーの IP アドレスをチェックしIf CheckWAN()ます。true が返された場合はコンテンツ ページに渡されますが、false の場合は、メッセージとともにログインが表示されます。 false を返していること

Public Class BaseClass
    Inherits System.Web.UI.Page

If CheckWAN() = True Then
    Response.Redirect("/content.aspx")
Else
    Response.Write("The CheckWAN is returning False") 
    'this else also causes a redirect loop if its changed to 
    'Response.Write(/default.aspx) not sure why
End If

コードで使用されている IP がすべて有効であることを確認するためにネットワークもチェックしました。

編集しました! これが Request.UserHostAdress が デバッグを返すものです

4

1 に答える 1

0

まず第一に、これはコンパイルさえすべきではありません。どうやらそうなので、持っている必要がありますOption Strict OffRequest.UserHostAdress複雑なオブジェクトを返し、変数を文字列として宣言しました。あなたが実際に必要としているのは、そのオブジェクトのプロパティだと思いますが、どのプロパティかはわかりません。

于 2013-10-24T18:13:57.447 に答える