/ / Неможливо створити MembershipUser для користувацького MembershipProvider - asp.net, одиничне тестування, c # -3.0, c # -4.0, користувацьке членство -піддавач

Не вдається створити MembershipUser для користувача MembershipProvider - asp.net, unit-testing, c # -3.0, c # -4.0, custom-memberprovider

Я створив спеціальний постачальник членства, і отримую наступну помилку, намагаючись створити новий "MembershipUser".

Не вдається завантажити тип "MyTestApp.Membership.TestMembershipProvider" з збірки "System.Web, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a".

Я виконую це з проекту Unit Test, такЯ не впевнений, що це викликає проблему, але я включив System.Web, System.Web.ApplicationServices, а також посилання на MyApp.Membership і MyApp.DataModels (об'єкти Entity).

Помилка відбувається всередині моєї функції "GetUser", яка знаходиться нижче, моя конфігурація також нижче.

public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
{
try
{
AccountEntities db = new AccountEntities();

if ((providerUserKey is Guid) == false)
{
return null;
}

User user = (from u in db.Users
where u.UserId == (Guid)providerUserKey
&& u.Application.LoweredApplicationName == this.ApplicationName.ToLower()
select u).FirstOrDefault();

if (user != null)
{   // ERROR: Starts here, user object is correct, data is all there.
return new MembershipUser(this.ProviderName, user.UserName, (object)user.UserId, user.Email, user.PasswordQuestion, user.Comment, user.IsApproved, user.IsLockedOut, user.CreateDate, user.LastLoginDate, user.LastActivityDate, user.LastPasswordChangedDate, user.LastLockoutDate);
}
else
return null;
}
catch (Exception ex)
{
this.WriteToEventLog(ex, "Unable to get user from object "{" + ((Guid)providerUserKey).ToString() + "}".", "Get User");
return null;
}
}
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="AccountEntities" connectionString="metadata=res://*/Account.AccountDataModel.csdl|res://*/Account.AccountDataModel.ssdl|res://*/Account.AccountDataModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=&quotEDITED&quot;;Initial Catalog=CustomAuthentication;Persist Security Info=True;User ID=EDITED;Password=EDITED;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
<system.web>
<membership defaultProvider="TestMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear/>
<add  name="TestMembershipProvider" type="MyTestApp.Membership.TestMembershipProvider"
applicationName="/"
description="Membership Test"
enablePasswordReset="true"
enablePasswordRetrieval="true"
maxInvalidPasswordAttempts="3"
minRequiredNonAlphanumericCharacters="8"
minRequiredPasswordLength="8"
passwordAttemptWindow="30"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="true" />
</providers>
</membership>
</system.web>
</configuration>

Відповіді:

21 для відповіді № 1

Я тільки що помітив, що я пропустив нижню частину в конфігурації

type="MyTestApp.Membership.TestMembershipProvider, MyTestApp.Membership"

Працює зараз!