Disable 'Forgot your password' feature
Hi
Is it possible to disable requesting a new password using the ‘Forgot your password’ feature for certain users?
Thanks
Regards
Hi John,
In the login page permissions are still not present since users aren`t logged to apply the permission. So filtering of users should be applied based on a preferred logic. It can be based on user IP, browser etc.
To do this map the template for the login form. Go to Administration->Settings->Advanced->Controls->ViewMap->create new.
Host:Telerik.Sitefinity.Security.Web.UI.LoginForm
Template: Put the relative path to your template file (~/Templates/LoginCustom.ascx)
The template markup is.
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI" TagPrefix="sitefinity" %><%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI.Fields" TagPrefix="sffields" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><%@ Control Language="C#" %><script type="text/C#" runat="server"> protected void Page_Load() //Custom logic here </script><sitefinity:ResourceLinks ID="resourcesLinks" runat="server"> <sitefinity:ResourceFile JavaScriptLibrary="JQuery"> </sitefinity:ResourceFile></sitefinity:ResourceLinks><sitefinity:ClientLabelManager id="clientLabelManager" runat="server"> <Labels> <sitefinity:ClientLabel ClassId="Labels" Key="SelfLogoutUserConfirm" runat="server" /> <sitefinity:ClientLabel ClassId="Labels" Key="UserNotSelected" runat="server" /> <sitefinity:ClientLabel ClassId="Labels" Key="LogoutUserConfirm" runat="server" /> </Labels></sitefinity:ClientLabelManager><sffields:FormManager runat="server" id="formManager" /><asp:Panel ID="loginPanel" runat="server"> <div class="sfForm"> <div class="sfFormIn"> <div class="sfLoginShadowTopRight"> </div> <div class="sfLoginShadowBottomLeft"> </div> <h2> <asp:Literal ID="LoginTitle" Text="<%$ Resources:Labels, LoginToManage %>" runat="server" /> </h2> <asp:Label runat="server" ID="FailureText" EnableViewState="False" Visible="false" CssClass="sfFailure" /> <ol> <li id="ProvidersHolder" runat="server"> <asp:Label ID="ProvidersLabel" Text="<%$ Resources:Labels, Provider %>" AssociatedControlID="ProvidersList" runat="server" CssClass="sfTxtLbl" /> <asp:DropDownList ID="ProvidersList" AutoPostBack="false" AccessKey="l" runat="server" /> </li> <li> <asp:Label ID="UserNameLabel" Text="<%$ Resources:Labels, Username %>" AssociatedControlID="UserName" runat="server" CssClass="sfTxtLbl" /> <asp:TextBox ID="UserName" AccessKey="u" runat="server" CssClass="sfTxt" /> <asp:RequiredFieldValidator ID="UserNameRequired" Display="Dynamic" ControlToValidate="UserName" ValidationGroup="LoginBox" ErrorMessage="<%$ Resources:Labels, UsernameCannotBeEmpty %>" CssClass="sfValidator" runat="server"> <strong><asp:Literal ID="UserNameRequiredLiteral" runat="server" Text="<%$ Resources:Labels, UsernameCannotBeEmpty %>" /></strong> </asp:RequiredFieldValidator> </li> <li> <asp:Label ID="PasswordLabel" Text="<%$ Resources:Labels, Password %>" AssociatedControlID="Password" runat="server" CssClass="sfTxtLbl" /> <asp:TextBox ID="Password" TextMode="Password" AccessKey="p" runat="server" CssClass="sfTxt" /> <asp:RequiredFieldValidator ID="PasswordRequired" Display="Dynamic" ControlToValidate="Password" ValidationGroup="LoginBox" ErrorMessage="<%$ Resources:Labels, PasswordCannotBeEmpty %>" CssClass="sfValidator" runat="server"> <strong><asp:Literal ID="PasswordRequiredLiteral" runat="server" Text="<%$ Resources:Labels, PasswordCannotBeEmpty %>" /></strong> </asp:RequiredFieldValidator> </li> <li class="sfCheckBoxWrapper"> <asp:CheckBox runat="server" ID="RememberMe" /> <asp:Label ID="RememberMeTextLabel" Text="<%$ Resources:Labels, RememberMe %>" AssociatedControlID="RememberMe" runat="server" /> </li> </ol> <p class="sfSubmitBtn sfMainFormBtns"> <asp:LinkButton ID="LoginButton" CommandName="Login" CssClass="sfLinkBtn sfSave" ValidationGroup="LoginBox" runat="server"> <strong class="sfLinkBtnIn"> <asp:Literal ID="LoginButtonLiteral" runat="server" Text="<%$ Resources:Labels, LoginCaps %>"></asp:Literal> </strong> </asp:LinkButton> <!-- do not remove this button. It is used for the default form submit (pressing enter) --> <div style="display: none;"> <asp:Button ID="hiddenSubmitButton" runat="server" CommandName="Login" ValidationGroup="LoginBox" /> </div> </p> </div> </div></asp:Panel><asp:Panel ID="userListPanel" runat="server" Visible="false"> <div class="sfForm"> <div class="sfFormIn"> <div class="sfLoginShadowTopRight"></div> <div class="sfLoginShadowBottomLeft"></div> <h2><asp:Literal ID="UsersListPanelLoginTitle" Text="<%$ Resources:Labels, LoginToManage %>" runat="server" /></h2> <p class="sfNeutral"><asp:Literal ID="userLimitLabel" runat="server" Text="<%$ Resources:Labels, UserLimitLabel%>" /></p> <sffields:ChoiceField runat="server" id="userListChoice" RenderChoicesAs="RadioButtons" DisplayMode="Write" /> <p class="sfSubmitBtn sfMainFormBtns"> <asp:LinkButton ID="logoutButton" runat="server" OnClientClick="return AlertLogOut();" CssClass="sfLinkBtn sfPrimary"> <strong class="sfLinkBtnIn"> <asp:Literal ID="LogoutButtonLiteral" runat="server" Text="<%$ Resources:Labels, LogoutButtonText%>"></asp:Literal> </strong> </asp:LinkButton> </p> </div> </div></asp:Panel><asp:Panel ID="selfLogoffPanel" runat="server" Visible="false"> <div class="sfForm"> <div class="sfFormIn"> <div class="sfLoginShadowTopRight"></div> <div class="sfLoginShadowBottomLeft"></div> <h2><asp:Literal ID="SelfLogoffPanelLoginTitle" Text="<%$ Resources:Labels, LoginToManage %>" runat="server" /></h2> <p class="sfNeutral"><asp:Literal ID="selfLogoffLabel" runat="server" Text="<%$ Resources:Labels, SelfLogoffLabel%>" /></p> <p class="sfSubmitBtn sfMainFormBtns"> <asp:LinkButton ID="selfLogoutButton" runat="server" OnClientClick="return AlertSelfLogOut();" CssClass="sfLinkBtn sfPrimary"> <strong class="sfLinkBtnIn"> <asp:Literal ID="LogoutOtherUserAndEnterLiteral" runat="server" Text="<%$ Resources:Labels, SelftLogoutButtonText%>"></asp:Literal> </strong> </asp:LinkButton> <asp:LinkButton ID="selfLogoutCancelButton" runat="server" Text="<%$ Resources:Labels, Cancel%>" CssClass="sfCancel" /> </p> </div> </div></asp:Panel><asp:Panel ID="denyLogonPanel" runat="server" Visible="false"> <div class="sfForm"> <div class="sfFormIn"> <div class="sfLoginShadowTopRight"></div> <div class="sfLoginShadowBottomLeft"></div> <h2><asp:Literal ID="DenyLogonPanelLoginTitle" Text="<%$ Resources:Labels, LoginToManage %>" runat="server" /></h2> <p class="sfNeutral"><asp:Literal ID="denyLogonMesage" runat="server" Text="<%$ Resources:Labels, DenyLogonMesage%>" /></p> <p><asp:Literal ID="loginRetryMessage" runat="server" Text="<%$ Resources:Labels, LoginRetryMessage%>" /></p> </div> </div></asp:Panel><asp:PlaceHolder ID="loginLinksHolder" runat="server"> <div class="sfLoginHelp"> <asp:Literal ID="HelpTitleLiteral" runat="server" Text="<%$ Resources:Labels, Help %>" />: <a id="PasswordRecoveryLink" href="~/Sitefinity/Login/PasswordRecovery" runat="server" onclick="toggleSmtpErrorMessage();"> <asp:Literal ID="PasswordRecoveryTextLiteral" runat="server" Text="<%$ Resources:Labels, ForgotYourPassword %>" /> </a> <a id="ChangePasswordLink" href="~/Sitefinity/Login/ChangePassword" runat="server" onclick="toggleSmtpErrorMessage();"> <asp:Literal ID="ChangePasswordTextLiteral" runat="server" Text="<%$ Resources:Labels, ChangePassword %>" /> </a> <a id="CreateUserLink" href="~/Sitefinity/Login/Register" runat="server"> <asp:Literal ID="RegisterUserTextLiteral" runat="server" Text="<%$ Resources:Labels, Register %>" /> </a> <a id="HelpLink" href="~/Sitefinity/Help/UsersAndRoles/LoggingIn" runat="server"> <asp:Literal ID="HelpLinkLiteral" runat="server" Text="<%$ Resources:Labels, Help %>" /> </a> </div></asp:PlaceHolder><div id="smtpNotSetContainer" class="sfNeutral sfDetailedInfo" style="display:none;"> <h3> <asp:Literal ID="ErrorMessageNoSmtpConfigLiteral" runat="server" Text="<%$ Resources:ErrorMessages, TheSystemHasNotBeenConfiguredToSendEmails %>" /> </h3> <ul> <li><asp:Literal ID="ErrorMessageContactAdminToResetYourPasswordLiteral" runat="server" Text="<%$ Resources:ErrorMessages, ContactAnAdministratorToResetYourPasswordManually %>" /></li> <li> <asp:Literal ID="ErrorOrAskAnAdministratorToConfigureTheSystemLiteral" runat="server" Text="<%$ Resources:ErrorMessages, OrAskAnAdministratorToConfigureThSystem %>" /> <a href="javascript:void(0)" onclick="toggleVisibility('smtpNotSetSolution')"> <asp:Literal ID="ErrorMessageSmtpDetailsTitle" runat="server" Text="<%$ Resources:ErrorMessages, Details %>" /> </a> </li> </ul> <div id="smtpNotSetSolution" class="sfDetailedHowTo" style="display: none; "> <p><asp:Literal ID="ErrorMessageSmtpSettingsNotSetLiteral" runat="server" Text="<%$ Resources:ErrorMessages, SmtpSettingsAreNotSet %>" /></p> <h3><asp:Literal ID="ErrorMessageHowToSetSmtpLiteral" runat="server" Text="<%$ Resources:ErrorMessages, HowToSetSMTP %>" /></h3> <ol> <li><asp:Literal ID="Literal20" runat="server" Text="<%$ Resources:ErrorMessages, GoToSettingsConfiguration %>" /></li> <li><asp:Literal ID="Literal21" runat="server" Text="<%$ Resources:ErrorMessages, SelectSystemSMTPSettings %>" /></li> </ol> </div></div><div id="smtpPermissionDeniedContainer" class="sfNeutral sfDetailedInfo" style="display:none;"> <h3> <asp:Literal ID="ErrorMessageTheSysIsNotPermittedToSendEmailsLiteral" runat="server" Text="<%$ Resources:ErrorMessages, TheSystemHasIsNotPermittedToSendEmails %>" /> </h3> <ul> <li><asp:Literal ID="ErrorMessageContactAdminToResetYourPasswordSmtpLiteral" runat="server" Text="<%$ Resources:ErrorMessages, ContactAnAdministratorToResetYourPasswordManually %>" /></li> <li> <asp:Literal ID="ErrorOrAskAnAdministratorToConfigureTheSystemSmtpLiteral" runat="server" Text="<%$ Resources:ErrorMessages, OrAskAnAdministratorToConfigureThSystem %>" /> <a href="javascript:void(0)" onclick="toggleVisibility('smtpPermissionsDeniedDetails')"> <asp:Literal ID="ErrorMessageSmtpPermissionDeniedDetailsTitle" runat="server" Text="<%$ Resources:ErrorMessages, Details %>" /> </a> </li> </ul> <div id="smtpPermissionsDeniedDetails" class="sfDetailedHowTo" style="display: none; "> <p><asp:Literal ID="SmtpPermissionErrorMessage" runat="server" /></p> </div></div>Test Test<asp:HiddenField id="logoutUser" runat="server" value="" /><asp:HiddenField id="loginTicket" runat="server" value="" /><asp:HiddenField id="mode" runat="server" value="" /><asp:HiddenField id="smtpSettingsAreSet" runat="server" value="" /><asp:HiddenField id="smtpPermissionDenied" runat="server" value="" /><telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"><script type="text/javascript"> var userChoices; var smtpSettingsAreSet; var smtpPermissionDenied; function pageLoad() userChoices = $find("<%= userListChoice.ClientID %>"); smtpSettingsAreSet = getBooleanHiddenField("<%= smtpSettingsAreSet.ClientID %>"); smtpPermissionDenied = getBooleanHiddenField("<%= smtpPermissionDenied.ClientID %>"); function getBooleanHiddenField(id) var field = $get(id); if (field !== null && field.value) return Boolean.parse(field.value); return false; function toggleVisibility() var elem = arguments[0] ? document.getElementById(arguments[0]) : this; if (elem.style.display == "block") elem.style.display = "none"; else elem.style.display = "block"; function toggleSmtpErrorMessage() if (!smtpSettingsAreSet) toggleVisibility('smtpNotSetContainer'); else if (smtpPermissionDenied) toggleVisibility('smtpPermissionDeniedContainer'); function AlertSelfLogOut() var clientLabelManager = $find('<%= clientLabelManager.ClientID %>'); var result = confirm(clientLabelManager.getLabel('Labels', 'SelfLogoutUserConfirm')); return result; function AlertLogOut() var clientLabelManager = $find('<%= clientLabelManager.ClientID %>'); var value = userChoices.get_value(); if (value == null || value.length == 0) alert(clientLabelManager.getLabel('Labels', 'UserNotSelected')); return false; var selectedItemId = userChoices.get_value(); // selectedItem[0].id; var result = confirm(clientLabelManager.getLabel('Labels', 'LogoutUserConfirm')); if (result) $get('<%= logoutUser.ClientID %>').value = value; return result; </script></telerik:RadCodeBlock>.sfLoginForm .sfLoginHelp a, .sfLoginForm .sfLoginHelp a:link, .sfLoginForm .sfLoginHelp a:visited, .sfLoginForm .sfLoginHelp a:hover, .sfLoginForm .sfLoginHelp a:active display: none;