能够使用错误的密码登录dotnetnuke

时间:2014-11-12 08:07:32

标签: dotnetnuke-module dotnetnuke-7 dotnetnuke-settings

我可以使用错误的密码登录dnn网站。当我在输入错误密码后单击登录按钮时,它会给我正确的验证消息。但是,我已登录,因为如果我刷新或浏览网站页面,我可以访问,并且可以看到我的屏幕名称。

我正在使用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"/>

这里有任何帮助。我检查了下面提到的链接,它有相同的核心问题,但没有得到任何解决方案的建议。

Programmatically login in dotnetnuke

任何建议或帮助都会受到很多赞赏。

谢谢, 萨姆

1 个答案:

答案 0 :(得分:1)

这是我在身份验证提供程序中执行的操作:

var loginStatus = UserLoginStatus.LOGIN_FAILURE;
UserInfo user = UserController.ValidateUser(portalId, userName, password, string.Empty, string.Empty, Request.UserHostAddress.ToString(), ref loginStatus);

bool authenticated = (loginStatus == UserLoginStatus.LOGIN_SUCCESS || loginStatus == UserLoginStatus.LOGIN_SUPERUSER);
var eventArgs = new UserAuthenticatedEventArgs(user, user.Username, loginStatus, "DNN");
eventArgs.Authenticated = authenticated;
OnUserAuthenticated(eventArgs);