У меня есть тестовая настройка виртуальной среды для веб-сервера IIS windows 2012 R2 и контроллер windows D C для DNS и т. Д. c .. Я работаю с windows 2012 R2 IIS веб-сервер под названием testweb .. у меня есть простой проект Visual Studio 2019 веб-формы, запущенный из testweb. это в основном только начальный. net проект веб-формы, с которого вы начинаете. я создал login.aspx и настроил свой файл web.config, я использовал несколько учебных пособий, которые я нашел в Интернете, таких как
https://www.c-sharpcorner.com/UploadFile/fa9d0d/forms-authentication-in-Asp-Net/
https://support.microsoft.com/en-us/help/301240/how-to-implement-forms-based-authentication-in-your-asp-net-applicatio
https://www.youtube.com/watch?v=AoRWKBbc6QI&t=207s, видео, показывающее то же самое
Я настроил свой веб-сайт и приложение, чтобы разрешить аутентификацию форм
также установлена следующая защита для IIS
мой webconfig используется по умолчанию из первоначального проекта с этими добавленными строками
<authentication mode="Forms">
<forms loginUrl="login.aspx" defaultUrl="Default.aspx">
<credentials passwordFormat="Clear">
<user name="user1" password="password1"/>
<user name="user2" password="password2" />
</credentials>
</forms>
</authentication>
<authorization>
<deny users ="?" />
<allow users = "*" />
</authorization>
Если я пытаюсь попасть на опубликованный сайт, я получаю следующее:
Если я уберу строки:
<authorization>
<deny users ="?" />
<allow users = "*" />
</authorization>
Тогда я могу нажать http://testweb/testlogin/, и это вызовет значение по умолчанию .aspx прекрасно! так что я чешу голову, хорошо стучу головой, пытаюсь выяснить, что не правильно установлено или что мне не хватает ?? я просмотрел каждый учебник онлайн. даже если у меня есть только запретить пользователям? в web.config он все еще не работает.
<authorization>
<deny users ="?" />
</authorization>
Любая помощь приветствуется, опять же, просто пытаюсь понять, как заставить аутентификацию форм работать в тестовом окружении и go оттуда ... но похоже как только добавить Auth, чтобы запретить анонимным пользователям? это просто отрицает меня вокруг. мои исключения: я должен получать страницу login.aspx, но она просто не работает.
Текущий файл web.config, основанный на ответах / комментариях:
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.7.2"/>
<httpRuntime targetFramework="4.7.2"/>
<pages>
<namespaces>
<add namespace="System.Web.Optimization"/>
</namespaces>
<controls>
<add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt"/>
</controls>
</pages>
<authentication mode="Forms">
<forms loginUrl="login.aspx" defaultUrl="Default.aspx">
<credentials passwordFormat="Clear">
<user name="user1" password="password1"/>
<user name="user2" password="password2" />
</credentials>
</forms>
</authentication>
<authorization>
<deny users ="?" />
</authorization>
</system.web>
<location path="login.aspx">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f"/>
<bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"/>
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
</configuration>
моя папка, содержащая мои на тестовом веб-сайте установлен пул defaultapp, а пользователь пула defaultapp прочитал / выполнил, что не было задано ранее, но я установил его, и это не сделало никаких различий, см. изображение ниже
ОБНОВЛЕНИЕ и ИСПРАВЛЕНИЕ *
, так что я наконец-то нашел этот пост https://social.msdn.microsoft.com/Forums/sqlserver/en-US/2920a4e2-775a-4aa7-bfff-4931fa0a4e9a/azure-website-forms-authentication-issue?forum=windowsazurewebsitespreview и, если последовал, добавил 2-й оператор пути для просто войдите без .aspx, тогда это работает !! я смог попасть на мою страницу login.aspx.
, поэтому мой последний работающий Web.config выглядит так или фрагменты кода для аутентификации формы.
<system.web>
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="login.aspx" defaultUrl="Default.aspx">
<credentials passwordFormat="Clear">
<user name="user1" password="password1"/>
<user name="user2" password="password2"/>
</credentials>
</forms>
</authentication>
<authorization>
<deny users ="?" />
</authorization>
</system.web>
<location path="login.aspx">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>
<location path="login">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>