2009-07-22 4 views
1

В настоящее время у меня есть ASP.NET 3.5 с пакетом обновления 1 (SP1), работающий в IIS 7. Я включил проверку подлинности с использованием .NET Membership и установил некоторые папки, которые ограничены в соответствии с созданными мной ролями. Например, если анонимный посетитель пытается получить доступ к файлу http://www.example.com/restricted/foo.txt, он будет перенаправлен на страницу входа, как и ожидалось. Все идет нормально.Аутентификация форм ASP.NET с помощью Querystring

То, что я хотел бы сделать, это предоставить доступ к защищенным файлам, позволяя посетителям указать свои учетные данные в строке запроса, что-то в одиночку линии:

http://www.example.com/foo.txt?user=username&pass=pwd

Возможно ли это вообще?

ответ

0

вы должны иметь возможность написать http-модуль, который перехватывает запрос и аутентифицирует пользователя на основе запроса. Однако, только для полноты, я хотел бы задать вопрос, является ли хорошей идеей предоставить пользователям свое имя пользователя и (в частности) пароль в виде открытого текста.

+0

Спасибо за быстрый ответ, Джоэл. Я никогда не писал http-модуль раньше, но я продолжу этот маршрут и дам вам знать, как он работает! – 2009-07-22 17:21:50

+0

Кстати, я подумал, что кто-то поставит вопрос о безопасности :-) Я действительно не собираюсь делиться этой функциональностью с большинством пользователей сайта. Цель состоит в том, чтобы просто позволить виджету на моем сайте получить доступ к файлу (он принимает URL-адрес в качестве входных данных), а роль пользователя, которую я задаю для этого виджета, очень ограничительна, поэтому никакие важные данные не отображаются. Я полагал, что это, по крайней мере, обеспечит некоторую степень безопасности для файлов, используемых виджетами, хотя я признаю, что это, безусловно, не является надежным. – 2009-07-22 17:22:45

0

Вы можете легко создать страницу загрузки, которая будет аутентифицировать пользователя, а затем переслать их в запрошенный файл. Что-то вроде навигации к Download.aspx? User = имя пользователя & pass = pwd & file = foo.txt.

Это, однако, НЕ рекомендуется. Вы не должны требовать от пользователей пропускать данные для входа через URL-адрес.

+0

Цените отзывы, Дэн! См. Мой комментарий выше относительно безопасности. Моя реальная дилемма заключается в том, что мне нужно передать URL-адрес, к которому может обратиться мой виджет (было бы идеально, если бы он прошел локальный путь, но поскольку он является сторонним виджетами, он должен быть веб-адресом). – 2009-07-22 17:26:35

0

Вторичный ответ, основанный на комментариях к другим вопросам, заключается в том, что вы можете просто поместить свою страницу загрузки в каталог. Подпапка может иметь web.config, который позволяет неаутентифицированным пользователям доступ к содержимому в пределах :-)

что-то вроде:

<configuration> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
</configuration> 
Смежные вопросы