More in this section
Forums / Developing with Sitefinity / Add Captcha and Windows Authentication to Admin Login

Add Captcha and Windows Authentication to Admin Login

The forums are in read-only mode. In case that you want to directly contact the Progress Sitefinity team use the support center. In our Google Plus group you can find more than one thousand Sitefinity developers discussing different topics. For the Stack Overflow threads don’t forget to use the “Sitefinity” tag.
4 posts, 0 answered
  1. Siddesh Kapadi
    Siddesh Kapadi avatar
    239 posts
    09 Oct 2009
    07 Mar 2013
    Link to this post

    Hi Team Telerik,

    I need to make the admin more secured, hence we decided to add the captcha to the admin login page. Can you let us know how we can acheive this?

    Also, we need to add windows authentication to the admin section, before the user can enter the admin username and password?

    Can you let us know, more on this?

    Siddesh Kapadi

  2. Boyan Barnev
    Boyan Barnev avatar
    1429 posts
    02 Jan 2018
    11 Mar 2013
    Link to this post
    Hello Siddesh,

    That's a tough one, we do not offer a CAPTCHA implementation for our login control, however you can try customizing it by modifying the default template for the backend login widget and then mapping the external template to the HostType of the backend login - Telerik.Sitefinity.Security.Web.UI.StsLoginForm, Telerik.Sitefinity.

    For your convenience, please find below the default template we're using:

    <%@ Control Language="C#" %>
    <%@ Register TagPrefix="sf" Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI" %>
    <script runat="server">
        protected void Unnamed_Click(object sender, EventArgs e)
    <sf:ResourceLinks id="resourceLinks" runat="server">
        <sf:ResourceFile Name="Styles/Login.css" />
    <fieldset class="sfLoginForm">
        <asp:Panel ID="Panel1" CssClass="sfForm" runat="server" DefaultButton="hiddenSubmitButton">
            <div class="sfFormIn" id="LoginFormControl">
                <div class="sfLoginShadowTopRight"></div>
                <div class="sfLoginShadowBottomLeft"></div>
                    <asp:Literal ID="LoginTitle" Text="<%$ Resources:Labels, LoginToManage %>" runat="server" />
                <sf:SitefinityLabel runat="server" id="errorLabel" WrapperTagName="div" HideIfNoText="True" CssClass="sfFailure" />
                    <li runat="server" id="ProvidersPanel" style="display:none;"> <%--Hide the providers dropdown. This will be handled by user (See LoginClick() implementation below--%>
                        <asp:Label ID="ProviderLabel" AssociatedControlID="ProvidersList" runat="server" Text="<%$ Resources:Labels, Provider %>" CssClass="sfTxtLbl" />
                        <select id="ProvidersList" runat="server" onchange="providersListChange();" />
                        <input id="sf_domain" name="sf_domain" type="hidden" />
                        <label for="wrap_name" class="sfTxtLbl">
                            <asp:Literal ID="Literal1" Text="<%$ Resources:Labels, Username %>" runat="server" />
                        <input type="text" id="wrap_name" name="wrap_name" class="sfTxt" />
                        <label for="wrap_password" class="sfTxtLbl">
                            <asp:Literal ID="Literal2" Text="<%$ Resources:Labels, Password %>" runat="server" />
                        <input type="password" id="wrap_password" name="wrap_password" class="sfTxt" />
                    <li class="sfCheckBoxWrapper">
                        <input type="checkbox" id="sf_persistent" name="sf_persistent" value="true" checked="checked" />
                        <label for="sf_persistent">
                            <asp:Literal ID="Literal3" Text="<%$ Resources:Labels, RememberMe %>" runat="server" />
                    <li runat="server" id="StartupHintPanel" visible="false">
                        <a id="StartupHintLink" onclick="startupHintClick()" class="sfMoreDetails sfHelpLnk">
                            <asp:Literal ID="LoginDemoCredentialsQuestion" Text="<%$ Resources:Labels, LoginDemoCredentialsQuestion %>" runat="server" />
                        <div id="startupHint" class="sfNeutral sfCredentialInfo" style="display: none;">
                                <asp:Label ID="StartupHintBody" runat="server" Text="<%$ Resources:Labels, LoginDemoCredentialsHint %>" />
                                    <asp:Literal ID="Literal4" Text="<%$ Resources:Labels, UsernameLower %>" runat="server" />:
                                    <sf:SitefinityLabel id="DefaultUser" runat="server" WrapperTagName="strong" />
                                    <asp:Literal ID="Literal5" Text="<%$ Resources:Labels, PasswordLower %>" runat="server" />:                                 
                                    <sf:SitefinityLabel id="DefaultPassword" runat="server" WrapperTagName="strong" />
                <div class="sfSubmitBtn sfMainFormBtns">
                    <asp:LinkButton ID="LinkButton1" runat="server" CssClass="sfLinkBtn sfSave" OnClientClick="LoginClick()">
                        <strong class="sfLinkBtnIn">
                            <asp:Literal ID="LoginButtonLiteral" runat="server" Text="<%$ Resources:Labels, LoginCaps %>" />
                <!-- do not remove this button. It is used for the default form submit (pressing enter) -->
                <div style="display: none;">
                    <input type="hidden" id="isFormRequest" name="isFormRequest" value="true" />
                    <asp:Button ID="hiddenSubmitButton" runat="server" />
    <script type="text/javascript">
        var providersList;
        var sf_domain;
        function pageLoad() {
            $("body").addClass("sfLogin sfNoSidebar");
            sf_domain = $get("sf_domain");
            providersList = $get("<%= ProvidersList.ClientID %>");
            if (providersList && sf_domain)
                sf_domain.value = getProvidersListValue();
        function getProvidersListValue() {
            var index = providersList.selectedIndex;
            if (index > -1 && providersList.options.length > index) {
                return providersList.options[index].value;
            return "";
        function startupHintClick() {
        //Logic for handling {provider\username} pattern in the UserName input
        function LoginClick() {
            var username_value = $get('wrap_name').value;
            if (username_value && username_value.indexOf('\\' !== -1)) {
                var parsed = username_value.split('\\');
                if (parsed.length > 0) {
                    $get('wrap_name').value = parsed[1];
                    sf_domain.value = parsed[0];
        function providersListChange() {
            sf_domain.value = getProvidersListValue();
            return true;

    Kind regards,
    Boyan Barnev
    the Telerik team
    Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  3. Muhammad Umer
    Muhammad Umer avatar
    1 posts
    29 Apr 2015
    29 Apr 2015
    Link to this post

    Hi Guys, 
    Is it possible to implement the Captcha into the sitefinity login. I did manage to implement captcha in two steps. In step 1: Captcha appears and when validated the user is directed to step 2 which is the login form.
    I am struggling to do it in one step and make captcha appear below the login form. I am using version 6 and not having luck any success finding information on how to do it. 

    Any assistance would greatly be appreciated. Thanks!

  4. Svetoslav Manchev
    Svetoslav Manchev avatar
    735 posts
    06 Sep 2017
    04 May 2015
    Link to this post
    Hello Muhammad,

    There is no captcha for the login widget out of the box, you can find a tutorial how to implement this here:

    You can than hide the default login backend widget and use this amended one under:
    Administration > Backend Pages > Sitefinity > Login > Login page

    I hope the information above was useful.

    Svetoslav Manchev
    Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Sitefinity CMS Ideas&Feedback Portal and vote to affect the priority of the items
4 posts, 0 answered