Is my web site using Kerberos or NTLM authentication?

If you are not sure if Kerberos or NTLM authentication is used in your web application then you can use the script given in the following blog:

The blog is in French but you only need to copy the ASPX code which you can find below:

<%@ Page language="VB" %>
<%@ Import namespace = "System.web" %>
<script language="VB" runat="server">
    Dim AuthLength
    Dim AuthOther
    Public Sub page_Load(ByVal Obj As ObjectByVal e As EventArgs)
        Authuser.Text = HttpContext.Current.User.Identity.Name().ToString
        ThreadId.Text = System.Security.Principal.WindowsIdentity.GetCurrent().Name().ToString()
        ' Get the authentication method being used
        AuthMethod.Text = Request.ServerVariables("AUTH_TYPE")
        AuthLength = Request.ServerVariables("HTTP_Authorization")
        ' If some other authentication method (other than Negotiate) gets used, call it "Other"
        If LTrim(RTrim(AuthMethod.Text)) <> "Negotiate" Then AuthOtherMethod()
        ' If Negotiate gets used, go straight to the subroutine to handle it
        If LTrim(RTrim(AuthMethod.Text)) = "Negotiate" Then AuthNegotiateMethod()
    End Sub
    Sub AuthOtherMethod()
        ' Since anonymous authentication will be blank, let's be sure we realize it's enabled to
        If LTrim(RTrim(AuthMethod.Text)) = "" Then AuthMethod.Text = "Anonymous"
    End Sub
    Sub AuthNegotiateMethod()
        ' Typically, NTLM will yield a 150 - 300 byte header, while Kerberos is more like 5000 bytes
        If Len(AuthLength) > 1000 Then AuthType.Text = "Kerberos"
        If Len(AuthLength) < 1000 Then AuthType.Text = "NTLM"
    End Sub
        Authentication Method : <asp:label id=AuthMethod runat=server /><br>
        Protocole : <asp:label id=AuthType  runat=server /><br>
        Authenticated user: <asp:label id=Authuser runat=server /><br>
        Thread identity   : <asp:label id=ThreadId runat=server />


Page de test Kerberos et de délégation ASPX


Comments (0)

Skip to main content