#python #windows-server-2008 #sql-server-2008-r2 #web2py
#python #windows-server-2008 #sql-server-2008-r2 #web2py
Вопрос:
Я уже некоторое время использую Web2py в среде awesome * nix вместе с RDMS с открытым исходным кодом (MySQL, Postgre, SQLLite и т. Д.) Для своих личных проектов.
Для моего рабочего места, которое полностью работает в .Сетевая среда Мне нужно создать быстрое веб-приложение (обслуживание основных данных сотрудника), которое работает в локальной интрасети с аутентификацией и ролями пользователей.
Я планировал разработать приложение на web2py и развернуть его на сервере rocket по умолчанию, НО застрял с DAL. Я пробовал адаптеры pyodbc, mssql, mssql2 и все обходные пути, которые люди делали в группе Google и на других форумах.
Мои сведения о среде производства и развертывания:
O / S: MS Windows Server 2008
DB: MS SQL Server 2008 R2 (размещенный по локальной сети и с аутентификацией Windows, а не с аутентификацией SQL)
Python: 2.7
Веб-сервер: IIS 7.0 в идеале, но я могу работать на Rocket.
Существует ли какое-либо руководство по применению «HelloWorld», в котором рассматриваются эти темы:
- Аутентификация домена Windows с ролями пользователей в Web2py
- Web2py-to-MSSQLServer2008R2 DAL
- Развертывание Web2py-IIS7.0
Если кто-нибудь может мне помочь, я могу опубликовать это как устройство web2py, как только я закончу.
Ответ №1:
Это частичный ответ, он касается только аутентификации с использованием Active Directory (я предполагаю, что это то же самое или похоже на аутентификацию домена). Я не эксперт по Windows, но мне помог локальный администратор Windows. Это код, который я вставил в db.py файл для этого приложения в web2py.
if localauth:
# I set localauth to 1 when using the app on my home lan, else 0
# I am a consultant and not always connected to the client VPN
# FYI, I do have a db of same type and name with same user/pw at home
# in this case use the basic login that comes as default with web2py
pass
else:
from gluon.contrib.login_methods.ldap_auth import ldap_auth
auth.settings.login_methods = [ldap_auth(mode='ad',
server='<server ip address>',
base_dn='<base_dn>')]
# the above line forces active directory to be the ONLY authentication method
# my base_dn looked like this: 'OU=<ou>,DC=<subdomain>,DC=<domain>,DC=<tld e.g. com, net, edu, etc.>'
# an active directory knowledgeable person can help you here
Джей
Комментарии:
1. Обратите внимание, что если вы хотите получить членство в группе AD, вам необходимо добавить дополнительные параметры: manage_groups=True, group_member_attrib=’участник: 1.2.840.113556.1.4.1941:’
Ответ №2:
Да, Джей прав для части LDAP. Мне пришлось внести одно изменение в ldap_auth.py метод входа в систему, чтобы заставить его работать в нашем домене, но, похоже, не всем это нужно. См. https://groups.google.com/forum/?pli=1 #!searchin/web2py/LDAP/web2py/jyFl1CXUy0s/TXld4CEdlEcJ Существует также (очень простое) руководство по http://www.web2pyslices.com/slices/take_slice/145
DAL Web2py отлично работает с MSSSQL 2008 R2 для меня, просто установите соединение models.py
#tell the dal where your MSSQL db is
db = DAL('mssql://username:password@db_server/database_name')
НО я использую аутентификацию SQL Server, а не аутентификацию Windows. Проверка документов по строке подключения pyodbc похоже, что это может быть возможно, добавив Trusted_Connection=yes в вашу строку подключения — я еще не пробовал и может потребовать внесения изменений в gluon/dal.py
И определите свои таблицы — обратитесь к официальной документации http://web2py.com/book/default/chapter/06
Я не знаю о части IIS — она несколько раз появлялась в группе web2py Google, и в ней есть руководство http://www.web2pyslices.com/slices/take_slice/128 это может быть полезно. Лично я просто запускаю web2py под Apache даже в Windows.
Я бы настоятельно рекомендовал задать вопрос в группе Google web2py, вы получите гораздо больше внимания.
Комментарии:
1. Хорошо, после некоторого тестирования кажется возможным заставить DAL подключиться к базе данных с помощью проверки подлинности Windows (текущего пользователя, вошедшего в систему). Для этого потребовалось изменить gluon/dal.py чтобы он позволял вам пропускать имя пользователя. Я постараюсь отправить это Массимо для включения в web2py.
2. Спасибо! Позвольте мне объединить все эти данные в полноценное приложение, которое, надеюсь, может работать как HelloWorld для запуска web2p в корпоративной среде интрасети. Любые дополнительные замечания по вышесказанному приветствуются.
3. Брайан,<br /> <br /> У тебя была возможность отправить это Массимо? <br /> Пожалуйста, пришлите мне ваши текущие файлы с изменениями в DAL incorporated, чтобы я продвигался вперед с проектом. Я не получил ответа в группе Google. Модераторы не одобрили мой пост. Спасибо!