Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Проверка подлинности с помощью форм в приложениях
Я работаю над внутренним веб-инструментом для своей компании. Частью этого инструмента является другое приложение (Панель управления круиз-контролем), которое работает в своем собственном виртуальном каталоге под моим корневым приложением.
Я хотел ограничить доступ к этому внутреннему приложению, настроив аутентификацию форм на нем и имея форму входа в корневое приложение.
Я поместил следующее в корневые приложения web.config:
<location path="ccnet">
<system.web>
<authentication mode="Forms">
<forms loginUrl="/default.aspx" timeout="5000"/>
</authentication>
<authorization>
<allow users="?"/>
<deny users="?"/>
</authorization>
</system.web>
</location>
Однако проверка подлинности форм не работает, она не перенаправляется обратно на страницу входа, когда я получаю доступ к этому приложению напрямую.
У меня такое чувство, что у меня есть теги <allow> и <deny>, установленные неправильно. Может кто-нибудь прояснить?
Возможно, Вам также потребуется поместить path= " / " в поле
Возможно, Вам также потребуется поместить path= " / " в поле
Вот оно что!
Итак, резюме, в порядке todo это;
В корне web.config добавить:
<machineKey validationKey="AutoGenerate" decryptionKey="AutoGenerate" validation="SHA1" />
Это необходимо сделать, так как по умолчанию он равен "AutoGenerate,IsolateApps".
Во-вторых, вы должны назвать форму Auth cookie одинаково в обоих случаях, я сделал это все в своем корне, используя тег location:
<authentication mode="Forms">
<forms name="ccAuth" loginUrl="/default.aspx" path="/" timeout="5000"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
Окончательно:
<location path="ccnet">
<system.web>
<authentication mode="Forms">
<forms name="ccAuth" loginUrl="/default.aspx" path="/" timeout="5000"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
Спасибо всем за вашу помощь. Это был тупик.
FormsAuthentication шифрует токены, которые он предоставляет пользователю, и по умолчанию шифрует ключи, разные для каждого приложения. Чтобы заставить Forms Auth работать в разных приложениях, вам нужно сделать несколько вещей:
Во-первых, установите формы Auth "name" одинаковыми для всех приложений. Это делается с помощью:
<authentication mode="Forms">
<forms name="{name}" path="/" ...>
</authentication>
Установите "name" таким же образом в обоих приложениях web.configs.
Во-вторых, вы должны сказать обоим приложениям, чтобы они использовали один и тот же ключ при шифровании. Это немного сбивает с толку. Когда я настраивал это, все, что мне нужно было сделать, это добавить следующее к обоим web.configs:
<machineKey validationKey="AutoGenerate" decryptionKey="AutoGenerate" validation="SHA1" />
Согласно документам, это значение по умолчанию,но оно не сработало для меня, если я не указал его.
А где же этот код, Джонатан? По моему опыту, у меня есть элемент управления login, и в случае OnAuthenticate я бы установил Authenticated в false...
If CustomAuthenticate(Login1.UserName, Login1.Password) Then
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, False)
Else
e.Authenticated = False
End If
Но это с помощью Microsoft Way
Что такое расширение файла для этого приложения круиз-контроля? Если это не тип файла, который зарегистрирован для обработки ASP.NET (например, jsp, java и т. д.), то ASP.NET не будет действовать в качестве механизма аутентификации (на IIS 5 и 6). Например, для статических файлов html, если не реализовано сопоставление подстановочных знаков, IIS выполняет всю проверку подлинности и авторизацию и обслуживает файл без использования расширения ASP.NET isapi. IIS7 может использовать новый интегрированный режим конвейера для перехвата всех запросов. Для IIS6 вы захотите посмотреть статью Скотта ГУ по этому вопросу .
Ни одно из вышеперечисленных предложений не сработало для меня. Получается в корне web.config набор:
<forms loginUrl="/pages/login.aspx" enableCrossAppRedirects="true"...
и убедитесь, что оба корневых и дочерних приложения имеют в system.web
<machineKey validationKey="AutoGenerate" decryptionKey="AutoGenerate" validation="SHA1"/>
который отключает значение по умолчанию IsolateApps.
Тогда все просто работало!