django使用ldap认证

摘要:
DOCTYPEhtml˃title操,{{usergo}}loginauth.html,˂!

pip3 installdjango-auth-ldap python-ldap

urls.py,

from app0104 importviews
urlpatterns =[
    url(r'^admin/', admin.site.urls),
    url(r'^loginauth/', views.loginauth),
    url(r'^index/', views.index),
]

index.html,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>fuck,{{ usergo }}</h1>
</body>
</html>

loginauth.html,

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form class="formone" action="/loginauth/" method="post">
        <input type="text" name="name" />
        <input type="password" name="password" />
        <input type="submit" value="ss" />
    </form>
{{ context.errors_list }}
{{ context.user_loggedin }}



</body>
</html>

views.py,

from django.shortcuts importrender,HttpResponseRedirect

#Create your views here.



from django.contrib.auth importauthenticate, login as auth_login, logout as auth_logout
from django.contrib.auth.models importUser

name = ''


defloginauth(request):

    user_loggedin = 'Guest'errors_list =[]
    if request.method == 'POST':
        print('pp: ', request.POST.get('name'), request.POST.get('password'))
        globalname
        name = request.POST.get('name')
        password = request.POST.get('password')
        usergo = authenticate(username=name, password=password)

        print('authuser', usergo)
        if usergo is notNone:
            auth_login(request, usergo)
            uu =request.user
            loginusername =usergo
            u = User.objects.get(username=uu)
            return HttpResponseRedirect("/index/")

    context = {'errors_list': errors_list, 'user_loggedin': user_loggedin}
    return render(request, 'loginauth.html', context)


defindex(request):
    print('last:',name)
    return render(request,'index.html',{'usergo':name})

settings.py,

importos

importldap
#LDAP configurationimport ldap
from django_auth_ldap.config importLDAPSearch
AUTHENTICATION_BACKENDS =(
    'django_auth_ldap.backend.LDAPBackend',
    'django.contrib.auth.backends.ModelBackend',
)
#base_dn = 'dc=example,dc=com'#AUTH_LDAP_SERVER_URI = 'ldap://192.168.187.55:389'#AUTH_LDAP_BIND_DN = 'cn=admin,dc=example,dc=com'#AUTH_LDAP_BIND_PASSWORD = "123456"#
## 用户的DN是uid=caojun,ou=People,dc=ldap,dc=ssotest,dc=net,所以用uid#AUTH_LDAP_USER_SEARCH = LDAPSearch('ou=People,dc=example,dc=com', ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
basedn = "OU=fds,DC=ddd,DC=com"AUTH_LDAP_SERVER_URI = 'ldap://192.112.250.140:31338'AUTH_LDAP_BIND_DN = 'CN=Admin.BJSHOP,OU=dfd_Admin,OU=AdminAccounts,OU=Applications,DC=sf,DC=com'AUTH_LDAP_BIND_PASSWORD = "dddw33rewq"

#用户的DN是uid=caojun,ou=People,dc=ldap,dc=ssotest,dc=net,所以用uid
AUTH_LDAP_USER_SEARCH = LDAPSearch('OU=ddd,DC=dd,DC=com', ldap.SCOPE_SUBTREE, "(sAMAccountName=%(user)s)")

AUTH_LDAP_USER_ATTR_MAP ={
     "first_name": "givenName",
     "last_name": "sn",
     "email": "mail"}

免责声明:文章转载自《django使用ldap认证》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇我要自学网视频免登陆观看破解技巧swoole,httpserver 跨域---记一次php网站跨域访问上机实验下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

facebook atc弱网环境搭建和踩坑总结

facebook atc介绍 Augmented Traffic Control(又名atc)是一种模拟网络状况的工具。由facebook开源,是一个允许开发人员控制设备与互联网连接的项目。atc可以模拟不同的网络条件,包括控制带宽,延迟,数据包丢失、数据包损坏、数据包重排序等几个因素都可以由atc来控制。atc运行在网关,可以控制连接到该网络的手机,设备...

django orm中filter(条件1).filter(条件2)与filter(条件1,条件2)的区别 哈欠涟涟的日志 网易博客

django orm中filter(条件1).filter(条件2)与filter(条件1,条件2)的区别 - 哈欠涟涟的日志 - 网易博客 django orm中filter(条件1).filter(条件2)与filter(条件1,条件2)的区别 2010-05-28 11:12:25|分类:django|标签:|字号大中小订阅 在http:...

Windows编译安装mod_wsgi,配合使用Django+Apahce

编译环境: 均是32位版本 Microsoft Visual Studio 10.0 Microsoft SDKs v7.1 Apache2.4 Python3.4 mod_wsgi-4.5.0 要求: 1 Apache和Python都是32位或者都是64位, 2 Apache和Python是相同版本的C++编译器编译的 3 使用和上述相同版本的C++编...

django 菜单权限

一.什么是权限 能做哪些事情,不能做哪些事情,可以做的权限 二.设计权限 思路: web应用中,所谓的权限,其实就是一个用户能够访问的url,通过对用户访问的url进行控制,从而实现对用户权限的控制. 每个用户代表不同的的角色,每个角色具有不同的权限. 一个用户可以有多重角色,多个人也可以是一种角色(比如说一个公司可以有多个销售),所以说,用户与角色之间的...

【02】Django框架:模型与站点

一、设计模型 1.创建应用   在一个项目中可以创建一到多个应用,每个应用进行一种业务处理。  创建应用的命令: python manage.py startapp 应用名 2.定义模型类   ①打开models.py文件,定义模型类。  ②引入包 from django.db import models   ③模型类继承自models.Model类。  ...

Django 部署到Nginx

在网上搜了很多篇Django+uwsgi+Nginx的部署文章,忙了一下午头昏脑胀,最终完成了部署。部署文章流程讲解都很好,但在细节上或许缺乏一些注意力,导致我多篇文章来回切换在字里行间寻找蛛丝马迹。既然我完成了部署,那我何不写下自己的流程和心得,让后来人有一些参考? 原理 Django+uwsgi+Nginx的工作模式如下图所示,三个服务各司其职,分别为...