2013-02-19 72 views
2

我想用自定义MembershipProvider与ASP MVC安全控制器在我的应用程序。如何使用自定义MembershipProvider?

只是为了一些背景,我将最终使用Web服务来验证每个用户。

据我了解,我将它添加到根级别的web.config如下:

<authentication mode="Forms"> 
    <forms loginUrl="~/Login/Login" timeout="2880" /> 
</authentication> 
<membership defaultProvider="CustomMembershipProvider"> 
    <providers> 
    <clear/> 
    <add name="MyMembershipProvider" type="DANet.security.MyMembershipProvider" /> 
    </providers> 
</membership> 

这里是我的课:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 

namespace DANet.security 
{ 
    public class MyMembershipProvider : MembershipProvider 
    { 
     private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 

     public override bool ValidateUser(string username, string password) 
     { 
      log.Debug("MyMembershipProvider"); 

      throw new NotImplementedException(); 
     } 

     public override MembershipUser CreateUser(string username, 
      string password, string email, string passwordQuestion, 
      string passwordAnswer, bool isApproved, 
      object providerUserKey, out MembershipCreateStatus status) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override string ApplicationName 
     { 
      get 
      { 
       throw new NotImplementedException(); 
      } 
      set 
      { 
       throw new NotImplementedException(); 
      } 
     } 

     public override bool ChangePassword(string username, string oldPassword, string newPassword) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override bool DeleteUser(string username, bool deleteAllRelatedData) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override bool EnablePasswordReset 
     { 
      get { throw new NotImplementedException(); } 
     } 

     public override bool EnablePasswordRetrieval 
     { 
      get { throw new NotImplementedException(); } 
     } 

     public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override int GetNumberOfUsersOnline() 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override string GetPassword(string username, string answer) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override MembershipUser GetUser(string username, bool userIsOnline) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override MembershipUser GetUser(object providerUserKey, bool userIsOnline) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override string GetUserNameByEmail(string email) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override int MaxInvalidPasswordAttempts 
     { 
      get { throw new NotImplementedException(); } 
     } 

     public override int MinRequiredNonAlphanumericCharacters 
     { 
      get { throw new NotImplementedException(); } 
     } 

     public override int MinRequiredPasswordLength 
     { 
      get { throw new NotImplementedException(); } 
     } 

     public override int PasswordAttemptWindow 
     { 
      get { throw new NotImplementedException(); } 
     } 

     public override MembershipPasswordFormat PasswordFormat 
     { 
      get { throw new NotImplementedException(); } 
     } 

     public override string PasswordStrengthRegularExpression 
     { 
      get { throw new NotImplementedException(); } 
     } 

     public override bool RequiresQuestionAndAnswer 
     { 
      get { throw new NotImplementedException(); } 
     } 

     public override bool RequiresUniqueEmail 
     { 
      get { throw new NotImplementedException(); } 
     } 

     public override string ResetPassword(string username, string answer) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override bool UnlockUser(string userName) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 

     public override void UpdateUser(MembershipUser user) 
     { 
      log.Debug("MyMembershipProvider"); 
      throw new NotImplementedException(); 
     } 
    } 
} 

我只是想看看如果类正在被NET使用并被调用。正如你所看到的,我在每种方法中都有日志语句,而当我登录时或者当我尝试点击标记为[授权]的控制器方法时,没有任何记录。我错过了什么吗?

回答

相关问题