Я могу войти на сайт dnn с неправильным паролем. Когда я нажимаю кнопку входа в систему после ввода неправильного пароля, он дает мне правильное сообщение для проверки. Однако я зарегистрирован, потому что, если я обновляю или просматриваю страницы сайта, я получаю доступ, и я могу видеть свое имя экрана.может войти в dotnetnuke с неправильным паролем
Я использую DNN версии 7.1.2
На кнопку Войти мыши, я использую ниже C# код:
var user = UserController.UserLogin(
portalId, userName, password, string.Empty,
portalName, ipAddress, ref loginStatus, checked);
значения для каждого:
portId = 0
ipAddress = ::1
var loginStatus = UserLoginStatus.LOGIN_FAILURE;
var checked = false;
Ниже приводится конфигурация для членства.
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SiteSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
minRequiredPasswordLength="7"
minRequiredNonalphanumericCharacters="0"
requiresUniqueEmail="false"
passwordFormat="Hashed"
applicationName="DotNetNuke"
description="Stores and retrieves membership data from the local Microsoft SQL Server database"/>
Любая помощь здесь. Я проверил ссылку, упомянутую ниже, которая имеет одинаковую проблему, но havent получил какое-либо решение из предложения.
Programmatically login in dotnetnuke
Любые предложения или помощь будет оценили много.
Спасибо, Sam
Да. Я понял почти такой же подход. Я вызвал метод UserController.ValidateUser в соответствии с вашим предложением. Основываясь на loginStatus, я вызываю UserController.UserLogin. :) Seemd работает нормально. – sam113
Сэм, приятно слышать. Этот код был снят с поставщика аутентификации, поэтому я использую событие OnUserAuthentication из AuthenticationLoginBase. Я должен был это разъяснить. – DotNetNuclear