我在这里使用 Jon Galloway 的(稍微过时的)示例实现了 ASP.NET 配置文件提供程序和成员资格提供程序:
我得到错误提供者必须实现类'System.Web.Profile.ProfileProvider'
根据示例,我创建了一个继承自 ProfileBase 的自定义 UserProfile
public class UserProfile : ProfileBase
{
public static UserProfile GetUserProfile(string username)
{
if (username != null)
{
var profile = Create(username) as UserProfile;
return profile;
}
}
public static UserProfile GetUserProfile()
{
var membershipUser = MembershipProvider.GetUser();
if (membershipUser != null)
return Create(membershipUser.UserName) as UserProfile;
}
[SettingsAllowAnonymousAttribute(true)]
public virtual string Name
{
get { return base["Name"] as string; }
set { base["Name"] = value; }
}
}
我从这样的类库中调用上述方法:
var profile = UserProfile.GetUserProfile(name);
反过来,我从具有 app.config 的单元测试项目中调用该方法:
<profile enabled="true" defaultProvider="MyProfileProvider" inherits="NAMESPACE.UserProfile, NAMESPACE">
<providers>
<clear/>
<add
name="MyProfileProvider"
connectionStringName="MembershipConnection"
applicationName="/"
type="NAMESPACE.UserProfile, NAMESPACE"
/>
</providers>
<properties>
<add name="Name" type="String"/>
</properties>
</profile>
从 ProfileBase 继承(如 Jon 的示例)应该足够了吧?我想我已经使用了“类型”和“继承”属性的所有变体,我在这里遗漏了什么吗?