【发布时间】:2016-12-05 10:52:58
【问题描述】:
我正在尝试使用 ldap3 在烧瓶应用中验证用户的用户名和密码。 ldap 没有安装在 python 3.5 中。
用户正在通过登录表单输入用户名和密码,我正在尝试使用 用户名/密码 对用户进行身份验证,如果通过身份验证,则允许他们访问索引页面。
身份验证是否返回 true 或 false,以便我可以根据结果重定向到下一页。
LDAP_PROVIDER_URL = "ldaps://appauth.corp.domain.com:636";
请帮我写代码。
当我输入 appauth.corp.domain.com 或 corp.domain.com 作为主机时,我收到以下错误
(r_web) C:\Users\dasa17\r_web\RosterWeb\RosterWeb>python 名册.py Traceback(最近一次通话最后一次):文件“Roster.py”,第 10 行,在 s = Server(appauth.corp.domain.com, port=636, get_info=ALL) NameError: name 'appauth' is not defined
(r_web) C:\Users\dasa17\r_web\RosterWeb\RosterWeb>python 名册.py Traceback(最近一次通话最后一次):文件“Roster.py”,第 10 行,在 s = Server(corp.domain.com, port=636, get_info=ALL) NameError: name 'corp' is not defined
我做了一些修改,现在我可以通过提供虚拟用户名和密码来运行它。但是,我现在遇到了另一个错误。>>> c = Connection(s,user='dasa17',password='',check_names=True, lazy=False,raise_exceptions=False)
c.open() 回溯(最近一次通话最后): 文件“”,第 1 行,在 c.open() 文件“C:\Python35\lib\site-packages\ldap3\strategy\sync.py”,第 57 行,打开 self.connection.refresh_server_info() 文件“C:\Python35\lib\site-packages\ldap3\core\connection.py”,第 1017 行,在 refresh_server_info self.server.get_info_from_server(self) 文件“C:\Python35\lib\site-packages\ldap3\core\server.py”,第 382 行,在 get_info_from_server self._get_dsa_info(连接) _get_dsa_info 中的文件“C:\Python35\lib\site-packages\ldap3\core\server.py”,第 308 行 get_operational_attributes=真) 搜索中的文件“C:\Python35\lib\site-packages\ldap3\core\connection.py”,第 571 行 response = self.post_send_search(self.send('searchRequest', request, controls)) post_send_search 中的文件“C:\Python35\lib\site-packages\ldap3\strategy\sync.py”,第 140 行 响应,结果 = self.get_response(message_id) 文件“C:\Python35\lib\site-packages\ldap3\strategy\base.py”,第 298 行,在 get_response 响应 = self._get_response(message_id) _get_response 中的文件“C:\Python35\lib\site-packages\ldap3\strategy\sync.py”,第 158 行 响应 = self.receiving() 文件“C:\Python35\lib\site-packages\ldap3\strategy\sync.py”,第 92 行,接收 提高通信异常工厂(LDAPSocketReceiveError,exc)(self.connection.last_error) ldap3.core.exceptions.LDAPSocketReceiveError: 接收数据时出错: [WinError 10054] 现有连接被远程主机强行关闭
【问题讨论】:
-
您收到的初始错误是因为未引用主机名。您可以发布当前设置 s 值的行吗,既然您已经更改了它?
-
@KevinSchellenberg 现在我纠正了语法,不知道为什么它使用任何用户名和密码并进行身份验证。我从 login.html 输入用户名和密码,如果用户名和密码无效,它将显示无效凭据..
-
s = Server('appauth.corp.domain.com',use_ssl=True, get_info=ALL) conn = Connection(s,'uid=dasa17,dc=corp,dc=domain,dc =com', '', auto_bind=True)
-
print(conn) ldaps://appauth.corp.domain.com:636 - ssl - 用户:uid=dasa17,dc=corp,dc=domain,dc=com - 绑定 - 打开 - - tls 未启动 - 监听 - SyncStrategy
-
>>> conn.open() >>> conn.bind() 真
标签: python-3.x flask compiler-errors