C# &引用;该操作或方法未实施”;自定义成员身份提供程序出错
我在使用自定义成员资格提供程序时遇到问题。我的类实现了C# &引用;该操作或方法未实施”;自定义成员身份提供程序出错,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我在使用自定义成员资格提供程序时遇到问题。我的类实现了成员身份提供程序的所有方法,但是当我使用WSAT安全部分时,我收到了以下消息: 所选数据存储存在问题。这可能是由于服务器名称或凭据无效或权限不足造成的。这也可能是由于未启用角色管理器功能造成的。单击下面的按钮可重定向到可选择新数据存储的页面。 以下错误消息可能有助于诊断问题:未执行操作或方法 这是我的web.config: <membership defaultprovider="CustomProvider"> <
成员身份提供程序的所有方法,但是当我使用WSAT安全部分时,我收到了以下消息:
所选数据存储存在问题。这可能是由于服务器名称或凭据无效或权限不足造成的。这也可能是由于未启用角色管理器功能造成的。单击下面的按钮可重定向到可选择新数据存储的页面。
以下错误消息可能有助于诊断问题:未执行操作或方法
这是我的web.config:
<membership defaultprovider="CustomProvider">
<providers>
<clear />
<add name="CustomProvider" type="Owl.CustomMembershipProvider.UserManager" applicationname="TestApp" connectionstringname="QUESTIONNARIESSql" enablepasswordretrieval="false" enablepasswordreset="false" maxinvalidpasswordattempts="5" />
</providers>
</membership>
让我们看一下错误的这一部分“它也可能是由于未启用角色管理器功能造成的”。在
下是否有
?
public class UserManager : MembershipProvider
{
public UserManager(): base()
{
}
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
{
// Inicializar
base.Initialize(name, config);
}
public MembershipUser CreateUser(string email, out MembershipCreateStatus status)
{
MembershipUser uInfo = new UserInfo(email, "CustomMembershipProvider", Guid.NewGuid());
try
{
using (QuestionnarieEntities context = new QuestionnarieEntities())
{
string auxEmail = (from u in context.UsersData
where u.UserEmail == email
select u.UserEmail).FirstOrDefault();
if (auxEmail == null)
{
UsersData userData = new UsersData();
userData.UserEmail = email;
userData.UserId = Guid.NewGuid();
context.AddToUsersData(userData);
context.SaveChanges();
status = MembershipCreateStatus.Success;
return uInfo;
}
else
{
status = MembershipCreateStatus.DuplicateEmail;
return uInfo;
}
}
}
catch (Exception)
{
status = MembershipCreateStatus.UserRejected;
throw;
}
}
public override bool DeleteUser(string email, bool deleteAllRelatedData)
{
try
{
// implementar exclusão
return true;
}
catch (Exception)
{
return false;
}
}
public override MembershipUser GetUser(string email, bool userIsOnline)
{
MembershipUser uInfo = new UserInfo(email, "CustomMembershipProvider", Guid.NewGuid()); ;
return uInfo;
}
public void UpdateUser(UsersData user)
{
try
{
using (QuestionnarieEntities context = new QuestionnarieEntities())
{
UsersData userData = (from u in context.UsersData
where u.UserEmail == user.UserEmail
select u).FirstOrDefault();
userData.UF = user.UF;
userData.Age = user.Age;
userData.City = user.City;
userData.Color = user.Color;
userData.Country = user.Country;
userData.Gender = user.Gender;
userData.Occupation = user.Occupation;
userData.Schooling = user.Schooling;
context.SaveChanges();
}
}
catch (Exception)
{
throw;
}
}
public bool ValidateUser(string email)
{
using (QuestionnarieEntities context = new QuestionnarieEntities())
{
return true;
//try
//{
// UsersData userData = (from u in context.UsersData
// where u.UserEmail == email
// select u).FirstOrDefault();
// if (userData != null)
// return true;
// else
// throw new Exception("O usuário não foi validado!");
//}
//catch (Exception)
//{
// return false;
//}
}
}
public override string ApplicationName
{
get
{
return "Authentication";
}
set
{
string apl= value;
}
}
public override bool ChangePassword(string username, string oldPassword, string newPassword)
{
return true;
}
public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer)
{
return true;
}
public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
{
status = MembershipCreateStatus.Success;
MembershipUser user = new UserInfo("sss","CustomProvider",Guid.NewGuid());
return user;
}
public override bool EnablePasswordReset
{
get { return false; }
}
public override bool EnablePasswordRetrieval
{
get { return false; }
}
public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords)
{
MembershipUserCollection muc = new MembershipUserCollection();
muc.Add(new UserInfo("sss","CustomProvider",Guid.NewGuid()));
totalRecords = 1;
return muc;
}
public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords)
{
MembershipUserCollection muc = new MembershipUserCollection();
muc.Add(new UserInfo("sss", "CustomProvider", Guid.NewGuid()));
totalRecords = 1;
return muc;
}
public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
{
MembershipUserCollection muc = new MembershipUserCollection();
muc.Add(new UserInfo("sss", "CustomProvider", Guid.NewGuid()));
totalRecords = 1;
return muc; ;
}
public override int GetNumberOfUsersOnline()
{
return 1;
}
public override string GetPassword(string username, string answer)
{
return "teste";
}
public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
{
MembershipUser uInfo = new UserInfo("luizdias@gmail.com", "CustomMembershipProvider", Guid.NewGuid()); ;
return uInfo;
}
public override string GetUserNameByEmail(string email)
{
try
{
using (QuestionnarieEntities context = new QuestionnarieEntities())
{
string auxEmail = (from u in context.UsersData
where u.UserEmail == email
select u.UserEmail).FirstOrDefault().ToString();
return auxEmail;
}
}
catch (Exception)
{
return string.Empty;
throw;
}
}
public override int MaxInvalidPasswordAttempts
{
get { return 3; }
}
public override int MinRequiredNonAlphanumericCharacters
{
get { return 0; }
}
public override int MinRequiredPasswordLength
{
get { return 2; }
}
public override int PasswordAttemptWindow
{
get { return 3; }
}
public override MembershipPasswordFormat PasswordFormat
{
get { return MembershipPasswordFormat.Clear; }
}
public override string PasswordStrengthRegularExpression
{
get { return ""; }
}
public override bool RequiresQuestionAndAnswer
{
get { return false; }
}
public override bool RequiresUniqueEmail
{
get { return false; }
}
public override string ResetPassword(string username, string answer)
{
return string.Empty;
}
public override bool UnlockUser(string userName)
{
return false; // implementei
}
public override void UpdateUser(MembershipUser user)
{
string s = "s" + "s";
}
public override bool ValidateUser(string username, string password)
{
return true;
}
}