2011-11-01 58 views
2

我一直在awesome * nix環境中使用Web2py,併爲我的個人項目使用開源RDMS(MySQL,Postgre,SQLLite等)。Web2py + MS SQL Server 2008 R2 + LDAP認證HelloWorld應用程序?

對於我在.Net環境中完全工作的工作場所,我需要製作一個快速的Web應用程序(員工主數據維護),該應用程序在本地Intranet上運行,具有身份驗證和用戶角色。

我打算在web2py上開發應用程序,並將它部署在默認的火箭服務器上,但是我堅持使用DAL。我已經嘗試過pyodbc,mssql,mssql2適配器以及所有在Google Group和其他論壇上做過的工作。

我的生產和部署環境的細節是:

O/S:MS Windows Server 2008的
DB:MS SQL Server 2008 R2的(託管over LAN和使用Windows身份驗證不是SQL身份驗證)
的Python:2.7
WebServer:理想的IIS 7.0,但我可以在Rocket上工作。

有什麼 '的HelloWorld' 應用教程在那裏它包括以下主題:

  1. 的Windows域認證與web2py的
  2. 的web2py到MSSQLServer2008R2 DAL
  3. web2py中,IIS7用戶角色。 0部署

如果有人可以幫助我,我可以在完成後將其作爲web2py設備發佈。

回答

0

這是一個部分答案,它只處理使用Active Directory的身份驗證(我稱它與域身份驗證相同或相似)。我不是Windows專家,但本地Windows管理員幫助我。這是我在web2py中爲這個應用程序放入db.py文件的代碼。

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 

周杰倫

+0

請注意,如果您想獲取AD組成員資格,則需要添加其他參數:manage_groups = True,group_member_attrib ='member:1.2.840.113556.1.4.1941:' – LeBleu

0

沒錯周杰倫的對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

的web2py的DAL已經工作得很好用MSSSQL 2008 R2,我只是把models.py

#tell the dal where your MSSQL db is 
db = DAL('mssql://username:[email protected]_server/database_name') 

連接,但我使用一個SQL Server身份驗證,而不是Windows身份驗證。檢查pyodbc connection string docs它看起來像它可能是通過添加Trusted_Connection = yes到您的連接字符串 - 還沒有嘗試過我自己,可能需要修改gluon/dal.py

並定義您的表 - 參考官方文檔http://web2py.com/book/default/chapter/06

我不知道IIS部分 - 它已經出現在web2py Google group幾次,並有一個如何在http://www.web2pyslices.com/slices/take_slice/128如何,可能會有所幫助。就個人而言,我甚至在Windows上運行Apache下的web2py。

我強烈建議詢問web2py's google group,你會得到更多的關注。

+0

好的,經過一些測試,似乎可以使用Windows身份驗證(當前登錄的用戶的身份)使DAL連接到數據庫。這確實需要更改gluon/dal.py來讓它跳過用戶名。我會嘗試將此提交給Massimo以包含在web2py中。 – brianm

+0

謝謝! 讓我把所有這些輸入放在一個完整的應用程序中,希望能夠在企業內部網環境中用作helloWorld來運行web2p。歡迎任何關於上述的更多說明。 – osamakhn

+1

Brian,

您有沒有機會將此發送給Massimo?
請將您當前的文件與DAL中的更改一併發送給我,以便我繼續進行該項目。我沒有收到Google羣組的回覆。版主沒有批准我的帖子。謝謝! – osamakhn