[TimLinux] python-ldap 介绍
1. 接口
ldap: LDAP库接口
ldap.asyncsearch: 大量搜索结果数据采用流处理
ldap.controls: LDAPv3上层访问扩展控制
ldap.dn: LDAP distinguished 名称处理
ldap.extop: LDAPv3上层访问扩展操作
ldap.filter: LDAP过滤器处理
ldap.modlist: 生成修改列表
ldap.resiter: 大量搜索结果数据采用流处理生成器
ldap.schema: LDAPv3 schema处理
ldap.syncrepl: syncrepl消费者实现
ldap.sasl: SASL认证方法
ldif: LDIF 解析器和生成器
ldapurl: LDAP URL 处理
sldaptest: OpenLDAP的sldap服务器的批量测试实例
2. django-auth-ldap配置
settings.py文件中的配置:
import ldap
from django_auth_ldap.config import LDAPSearch AUTHENTICATION_BACKENDS = [ 'django_auth_ldap.backend.LDAPBackend', 'django.contrib.auth.backends.ModelBackend' ] AUTH_LDAP_SERVER_URI = 'ldap://<ip>:389'
AUTH_LDAP_BIND_DN = "cn=<ldapuser>,OU=...,OU=...,DC=company,DC=com"
AUTH_LDAP_BIND_PASSWORD = "<ldappassword>"
AUTH_LDAP_USER_SEARCH = LDAPSearch(
'OU=xxx,OU=XXX,DC=company,DC=com',
ldap.SCOPE_SUBTREE,
'(&(objectclass=Person)(sAMAccountName=%(user)s))'
) AUTH_LDAP_USER_ATTR_MAP = {
'email': 'mailNickname',
'first_name': 'department',
'last_name': 'cn'
}
3. 视图
视图中的代码非常的简单,主要就是调用 authenticate 和 login 方法,代码示例如下:
from django.contrib.auth import authenticate, login, logout def login_view(request):
username = request.POST.get('username')
password = request.POST.get('password') user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
else:
print("login fail") def logout_view(request):
logout(request)
4. 模板
在模板HTML中,则可以通过使用 request.user.is_authenticated 来判断用户是否登录,而通过 request.user.* 来获取存放在里面的用户相关信息。
[TimLinux] python-ldap 介绍的更多相关文章
- 【转】Python Twisted介绍
Python Twisted介绍 作者:Jessica McKellar 原文链接 Twisted是用Python实现的基于事件驱动的网络引擎框架.Twisted诞生于2000年初,在当时的网络游戏开 ...
- 从零开始学Python第0周:Python基本介绍(部分内容来源于网络)
Python入门介绍 一,Python的基本介绍 (1)概要 Python是一种解释型,面向对象,动态数据类型的高级程序设计语言.常被广泛用于处理系统管理任务和web编程.现如今Python已经成为了 ...
- LDAP介绍
摘自: http://www.blogjava.net/allen-zhe/archive/2007/03/19/104740.html LDAP介绍 原文:http://ldapman.org/ar ...
- 【美妙的Python之中的一个】Python简单介绍及环境搭建
美妙的Python之Python简单介绍及安装 简而言之: Python 是能你无限惊喜的语言,与众不同. 1.Python: ...
- python模块介绍- multi-mechanize 性能测试工具
python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...
- python模块介绍- xlwt 创建xls文件(excel)
python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...
- python模块介绍- binascii 二进制和ASCII转换
python模块介绍-binascii二进制和ASCII转换 目录 项目简介 简介: Uu编码 Binhex编码 Base64编码 QP码 CRC校验和 二进制转换 其他实例 项目简介 Python中 ...
- python模块介绍- HTMLParser 简单的HTML和XHTML解析器
python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...
- 利用Python进行数据分析——重要的Python库介绍
利用Python进行数据分析--重要的Python库介绍 一.NumPy 用于数组执行元素级计算及直接对数组执行数学运算 线性代数运算.傅里叶运算.随机数的生成 用于C/C++等代码的集成 二.pan ...
- Python lambda介绍
转自:http://www.cnblogs.com/evening/archive/2010/03/29/2423554.html Python lambda 介绍 在学习python的过程中,l ...
随机推荐
- springboot配置springMVC
/** * @ClassName MvcConfigure * @Description SpringMVC配置 * @Author JAGNG * @Date 2019/10/28 10:23 ** ...
- C语音中最简单的排序冒泡排序和选择排序代码实现(非指针)
#include<stdio.h> int main() { int a[5] = { 2,5,7,3,-1 }; int n = sizeof(a) / sizeof(a[0]);//元 ...
- nyoj 23-取石子(一)(博弈)
23-取石子(一) 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:20 submit:33 题目描述: 一天,TT在寝室闲着无聊,和同寝的人玩起了取 ...
- Ocelot学习笔记
最近因工作需要,开始学习Ocelot.首先简单介绍一下,Ocelot是一个基于.net core的开源webapi 服务网关项目,目前已经支持了IdentityServer认证.根据 作者介绍,Oce ...
- C语言|博客作业06
这个作业属于哪个课程 C语言程序设计II 这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9885 我在这个课程的 ...
- django_5:表单1
CSRF( Cross Site Request Forgery)跨站点请求欺骗 方法一. {% csrf_token %} 方法二.在setting.py中注释掉MIDDLEWARE中的'djang ...
- Tarjan-割点
割点——tarjan #include <bits/stdc++.h> using namespace std; ; ; int n, m; int ans;//个数 * MAXM], n ...
- 2019-10-9:渗透测试,基础学习,php文件上传,mysql基础
header("Content-Type:text/html;charst="utf-8")设置头部信息,解决编码问题setcookie("loginStrin ...
- 【Luogu P2471】[SCOI2007]降雨量
Luogu P2471 啊啊啊啊这真是一道史上最毒瘤的题目!!!!! 题意就是给出n个年份的降雨量 询问:"自从\(y\)年以来\(x\)年的降雨量最大"的正确性. 显然有多种情况 ...
- 【Luogu P3375】字符串匹配KMP算法模板
Luogu P3375 模式串:即题目中的S2所代表的意义 文本串:即题目中的S1所代表的意义 对于字符串匹配,有一种很显然的朴素算法:在S1中枚举起点一位一位匹配,失配之后起点往后移动一位,从头开始 ...