Локальный доступ только для веб-страницы ASP.NET - PullRequest
0 голосов
/ 22 июля 2010

Можно ли настроить web.config для авторизации страницы для чтения только локально (в принципе аналогично функции RemoteOnly для сообщений об ошибках).

1 Ответ

0 голосов
/ 22 июля 2010

Вы можете проверить это на странице, которую вы хотите. Вот пример кода, который я пишу и проверяю, является ли пользователь локальным или нет.

override protected void OnInit(EventArgs e)
{
    if (!IsUserLocal())
    {
        Response.Redirect("~/");
        return;
    }

    base.OnInit(e);
}

public bool IsUserLocal()
{
    string userHostAddress = Request.ServerVariables["REMOTE_HOST"].ToString();

    if (string.IsNullOrEmpty(userHostAddress))
    {
        return false;
    }
    return (((userHostAddress == "127.0.0.1") || (userHostAddress == "::1")) || (userHostAddress == LocalAddress()));
}


public string LocalAddress()
{
    IServiceProvider provider = (IServiceProvider)HttpContext.Current;
    HttpWorkerRequest wr = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));

    return wr.GetLocalAddress();
}
...