2014-11-12 8 views
0

잘못된 비밀번호로 dnn 웹 사이트에 로그인 할 수 있습니다. 잘못된 암호를 입력 한 후 로그인 버튼을 클릭하면 적절한 유효성 검사 메시지가 나타납니다. 그러나 사이트 페이지를 새로 고치거나 찾아 본다면 액세스 할 수 있고 화면 이름을 볼 수 있기 때문에 로그인했습니다. 각잘못된 비밀번호로 dotnetnuke에 로그인 할 수 있습니다.

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; 

는 IS 내가 로그인 버튼 클릭에 DNN 버전 7.1.2

을 사용하고

, 나는 아래의 C# 코드를 사용하고 회원 구성.

<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

어떤 제안이나 도움을 많이 감상 할 수있다.

감사합니다, 샘

답변

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); 
+0

그래. 나는 거의 같은 종류의 접근법을 알아 냈다. 나는 당신의 제안에 따라 UserController.ValidateUser 메서드를 호출했다. loginStatus에 따라 UserController.UserLogin을 호출합니다. :) 잘 작동하는 것 같습니다. – sam113

+0

샘, 잘 듣고 싶습니다. 이 코드는 인증 공급자로부터 해제되었으므로 AuthenticationLoginBase에서 OnUserAuthentication 이벤트를 사용하고 있습니다. 나는 그것을 분명히해야만했다. – DotNetNuclear