Python Web2py+;MS SQL Server 2008 R2+;LDAP身份验证HelloWorld应用程序?

Python Web2py+;MS SQL Server 2008 R2+;LDAP身份验证HelloWorld应用程序?,python,windows-server-2008,sql-server-2008-r2,web2py,Python,Windows Server 2008,Sql Server 2008 R2,Web2py,一段时间以来,我一直在awesome*nix环境中使用Web2py,并在我的个人项目中使用开源rdm(MySQL、Postgre、SQLLite等) 对于完全在.Net环境中工作的工作场所,我需要制作一个快速的web应用程序(员工主数据维护),该应用程序在本地intranet上运行,具有身份验证和用户角色 我计划在web2py上开发该应用程序,并将其部署在默认的rocket服务器上,但我仍然坚持使用DAL。我试过pyodbc、mssql、mssql2适配器以及人们在googlegroup和其他论

一段时间以来,我一直在awesome*nix环境中使用Web2py,并在我的个人项目中使用开源rdm(MySQL、Postgre、SQLLite等)

对于完全在.Net环境中工作的工作场所,我需要制作一个快速的web应用程序(员工主数据维护),该应用程序在本地intranet上运行,具有身份验证和用户角色

我计划在web2py上开发该应用程序,并将其部署在默认的rocket服务器上,但我仍然坚持使用DAL。我试过pyodbc、mssql、mssql2适配器以及人们在googlegroup和其他论坛上所做的所有工作

我的生产和部署环境详细信息如下:

操作系统:MS Windows Server 2008
DB:MS SQL Server 2008 R2(通过局域网托管,使用Windows身份验证而非SQL身份验证)
Python:2.7
Web服务器:理想情况下为IIS 7.0,但我可以在Rocket上工作。

是否有涵盖以下主题的“HelloWorld”应用程序教程:

  • Web2py中具有用户角色的Windows域身份验证
  • Web2py-to-MSSQLServer2008R2 DAL
  • Web2py-IIS7.0部署

  • 如果有人可以帮助我,我可以在完成后将其作为web2py设备发布。

    这是一个部分答案,它只处理使用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
    
    如果localauth:
    #在我的家庭局域网上使用应用程序时,我将localauth设置为1,否则为0
    #我是一名顾问,并不总是连接到客户VPN
    #仅供参考,我在家里确实有一个类型和名称相同的数据库,拥有相同的用户/pw
    #在这种情况下,使用web2py默认的基本登录名
    通过
    其他:
    从glon.contrib.login\u methods.ldap\u auth导入ldap\u auth
    auth.settings.login_methods=[ldap_auth(mode='ad',
    服务器=“”,
    基本值(dn=“”)]
    #上述行强制active directory成为唯一的身份验证方法
    #我的基本数据如下所示:“OU=,DC=,DC=,DC=
    #active directory知识渊博的人员可以在这里帮助您
    

    Jay

    这是一个部分答案,它只处理使用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
    
    如果localauth:
    #在我的家庭局域网上使用应用程序时,我将localauth设置为1,否则为0
    #我是一名顾问,并不总是连接到客户VPN
    #仅供参考,我在家里确实有一个类型和名称相同的数据库,拥有相同的用户/pw
    #在这种情况下,使用web2py默认的基本登录名
    通过
    其他:
    从glon.contrib.login\u methods.ldap\u auth导入ldap\u auth
    auth.settings.login_methods=[ldap_auth(mode='ad',
    服务器=“”,
    基本值(dn=“”)]
    #上述行强制active directory成为唯一的身份验证方法
    #我的基本数据如下所示:“OU=,DC=,DC=,DC=
    #active directory知识渊博的人员可以在这里帮助您
    

    Jay

    是的,Jay对LDAP部分是正确的。我确实需要对ldap_auth.py登录方法进行一次修改,以使其在我们的域中工作,但似乎不是每个人都需要它。请看,还有一个(非常简单的)操作指南

    Web2py的DAL与msssql2008r2配合得很好,我只是将连接放在models.py中

    #tell the dal where your MSSQL db is
    db = DAL('mssql://username:password@db_server/database_name')
    
    但我使用的是SQL Server身份验证,而不是Windows身份验证。检查是否可以通过将Trusted_Connection=yes添加到您的连接字符串中—我自己还没有尝试过,可能需要修改glion/dal.py

    并定义表格-请参阅官方文档

    我不知道IIS部分-它在中出现过几次,并且有一个操作指南可能会有所帮助。就我个人而言,我只是在Apache下运行web2py,即使是在Windows上


    我强烈建议您继续提问,您会得到更多的关注。

    是的,Jay的LDAP部分是正确的。我确实需要对ldap_auth.py登录方法进行一次修改,以使其在我们的域中工作,但似乎不是每个人都需要它。请看,还有一个(非常简单的)操作指南

    Web2py的DAL与msssql2008r2配合得很好,我只是将连接放在models.py中

    #tell the dal where your MSSQL db is
    db = DAL('mssql://username:password@db_server/database_name')
    
    但我使用的是SQL Server身份验证,而不是Windows身份验证。检查是否可以通过将Trusted_Connection=yes添加到您的连接字符串中—我自己还没有尝试过,可能需要修改glion/dal.py

    并定义表格-请参阅官方文档

    我不知道IIS部分-它在中出现过几次,并且有一个操作指南可能会有所帮助。就我个人而言,我只是在Apache下运行web2py,即使是在Windows上


    我强烈建议您继续提问,您会得到更多的关注。

    好的,经过一些测试,似乎可以让DAL使用Windows身份验证(当前登录用户的身份验证)连接到数据库。这确实需要对glion/dal.py进行更改,以使其允许您跳过用户名。我将尝试将此提交给Massimo,以包含在web2py中。谢谢!让我将所有这些输入放在一个完整的应用程序中,该应用程序可以作为helloWorld在企业intranet环境中运行web2p。欢迎提供更多关于上述内容的说明。Brian,

    您是否有机会将此信息发送给Massimo?
    请将您当前的文件以及对DAL incorporated所做的更改发送给我,以便我继续项目。我没有得到谷歌集团的回复。现代