Python 使用Django进行LDAP身份验证

Python 使用Django进行LDAP身份验证,python,django,ldap,Python,Django,Ldap,我在用LDAP验证Django时遇到了一些问题 我使用的是django auth ldap,代码如下: view.py username = '' password = '' state = '' if not request.user.is_authenticated(): if request.method == 'POST': username = request.REQUEST.get('username') password = reques

我在用LDAP验证Django时遇到了一些问题

我使用的是django auth ldap,代码如下:

view.py

username = ''
password = ''
state = ''

if not request.user.is_authenticated():
    if request.method == 'POST':
        username = request.REQUEST.get('username')
        password = request.REQUEST.get('password')
        user = authenticate(username=username, password=password)
        if user is not None:
            login(request, user)
            state = "Valid account"
            return redirect('/home/')
        else:
            state = "Inactive account"
    return render_to_response('login.html')

else:
    return redirect('/home/')
HTML格式为:

<form action="" method="POST"> {% csrf_token %}
    User Name: <input type="text" name="username">         
    Password: <input type="password" name="password">
    <button type="submit">Log on</button>
</form>
视图中的authenticate值总是不返回任何值,但我不知道为什么

有人能解决我的问题吗?或者帮我检查代码


谢谢。

使用所需的auth decorator登录,如:

URL.py:

urlpatterns = patterns('',
    # ex: /
    url(r'^$', views.index, name='index'),

    url(r'^login/$', 'django.contrib.auth.views.login', {
      'template_name': 'APPNAME/login.html'
    }),
    url(r'^logout/$', 'django.contrib.auth.views.logout_then_login', {
      # using logout_then_login, no logout template is needed
      #'template_name': 'APPNAME/logout.html'
    }),
)
views.py:

from django.contrib.auth.decorators import login_required
from django.shortcuts import render

@login_required
def index(request):
    msg = "welcome to the index view"
    context = {'request': request, 'msg': msg}
    return render(request, 'APPNAME/index.html', context)

作为参考,指向文档的链接为
from django.contrib.auth.decorators import login_required
from django.shortcuts import render

@login_required
def index(request):
    msg = "welcome to the index view"
    context = {'request': request, 'msg': msg}
    return render(request, 'APPNAME/index.html', context)