0

間違ったパスワードで dnn Web サイトにログインできます。間違ったパスワードを入力してログイン ボタンをクリックすると、適切な検証メッセージが表示されます。ただし、サイトのページを更新または参照すると、アクセスが許可され、自分のスクリーン ネームが表示されるため、ログインしています。

私は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"/>

ここで何か助けてください。以下のリンクを確認しました。これには同じコアの問題がありますが、提案から解決策は得られていません。

プログラムで dotnetnuke にログインする

提案や助けをいただければ幸いです。

ありがとう、サム

4

1 に答える 1

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);
于 2014-11-12T23:42:31.283 に答える