Итак, у меня есть 2 файла .aspx. Один вызвал логин и один по умолчанию. Идея состоит в том, что когда вы запускаете приложение, вас выбрасывает на экран входа в систему. Я делаю это с помощью следующего кода в файле default.aspx.vb:
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If (HttpContext.Current.User.Identity.IsAuthenticated = False) Then
Response.Redirect("Login.aspx")
End If
End Sub
Проблема в том, что по какой-то причине вы всегда проходите аутентификацию. Он всегда возвращает истину. Мой файл веб-конфигурации выглядит так:
<configuration>
<appSettings>
<add key="strConn" value="EDITED"/>
</appSettings>
<location path="~/Styles">
<system.web>
<customErrors mode ="Off">
</customErrors>
<authentication mode="Forms">
<forms name=".ASPXAUTH"
loginUrl="Login.aspx"
protection="All"
timeout="30"
path="/">
</forms>
</authentication>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
<assemblies>
<add assembly="Microsoft.Data.Odbc, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="system.web.security"/>
</assemblies>
</compilation>
</system.web>
</location>
</configuration>
Я пробовал с aswell, ничего не изменилось. Пользователи аутентифицируются через базу данных. В настоящее время я запускаю программу в Visual Studio, а не на своем веб-сайте. Когда пользователи были проверены через базу данных, я использую этот код:
FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, chkPersistCookie.Checked)
Итак, есть идеи, почему люди всегда авторизованы?