我使用Jon Galloway(稍微过时)example here实现了ASP.NET Profile Provider和会员提供者:
我收到错误提供商必须实现类'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的例子)应该足够了吗?我想我已经使用了'type'和'inherit'属性的所有变体,我在这里遗漏了什么?
答案 0 :(得分:0)
我设法使用this example
上的变体至少保存了个人资料值dynamic profile = ProfileBase.Create(UserName);
profile.Name = name;
profile.Save();
不确定如何检索相同的属性,因为ProfileBase没有这样的方法...