HttpContext.Current.Request.LogonUserIdentity.IsAuthenticated возвращает значение False, даже если пользователь успешно вошел в систему - PullRequest
0 голосов
/ 10 апреля 2011

2003Я реализовала проверку подлинности с помощью форм в одной определенной подпапке на одном из моих сайтов. Мой код отлично работает на моей машине для разработки, но на живом сервере есть небольшая проблема.

Если вы перейдете в подпапку admin, если вы не авторизованы, вы будете перенаправлены на страницу входа. Нижний колонтитул главной страницы также содержит ссылку на страницу входа в систему; когда пользователь входит в систему, эта ссылка должна измениться на ссылку на страницу администратора:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim link As HtmlAnchor = FindControlIterative(Me, "Login")
    If HttpContext.Current.Request.LogonUserIdentity.IsAuthenticated Then
        link.InnerText = "Admin"
        link.HRef = "/admin/default.aspx"
    End If
End Sub

Это прекрасно работает на моем ПК разработчика, но на работающем сервере IsAuthenticated() возвращает значение False, и поэтому ссылка для входа в систему не заменяется ссылкой для администратора. Тем не менее, если перейти к подпапке администратора, я могу получить доступ к содержимому в порядке; перенаправление на страницу входа отсутствует.

Есть мысли?

К вашему сведению: он размещен на VPS Windows 2003, работающем поверх Hyper-V.

Ответы [ 2 ]

2 голосов
/ 10 апреля 2011

Вы должны использовать условие, подобное ..

if(HttpContext.Current.User.Identity.IsAuthenticated)   

Я приложил изображение для вашего разъяснения.enter image description here

Если вы видите intellisense используемого вами свойства, которое используется для проверки подлинности Windows, как показано в описании.

Причина работы локально: КакВы вошли в систему на своем локальном компьютере и аутентифицировались в Windows, затем она возвращает вам значение true, но вы развертываете на сервере, ситуация не такая, поэтому это свойство всегда возвращает false.

0 голосов
/ 10 апреля 2011

Попробуйте отладить веб-приложение не с веб-сервером Visual Studio, а с IIS Express .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...