WPF 成员资格提供程序自定义用户配置文件
本文关键字:程序 自定义 用户 配置文件 成员 WPF | 更新日期: 2023-09-27 18:30:31
我有一个 Web 应用程序和一个 WPF 应用程序共享一个实用程序支持项目。
尝试让我的自定义成员资格用户配置文件在 WPF 项目上工作时,我收到错误,不确定要查找什么。
从 WPF 项目调用支持项目中的 GetUser 方法时发生错误,错误为 -
无法加载类型"APP"。Support.UserProfile"来自程序集"System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'。
用户配置文件代码是 -
namespace APP.Support
{
public class UserProfile : ProfileBase
{
static public UserProfile CurrentUser
{
get
{
return (UserProfile)
(ProfileBase.Create(Membership.GetUser().UserName));
}
}
public static UserProfile GetUser(string username)
{
return (UserProfile)
(ProfileBase.Create(username));
}
public string UserCode
{
get { return ((string)(base["UserCode"])); }
set { base["UserCode"] = value; Save(); }
}
public string Name
{
get { return ((string)(base["Name"])); }
set { base["Name"] = value; Save(); }
}
public string UserID
{
get { return ((string)(base["UserID"])); }
set { base["UserID"] = value; Save(); }
}
}
}
网络配置(有效)是 -
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="30">
<providers>
<clear/>
<add name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="6" connectionStringName="MembershipConnectionString" applicationName="APP" enablePasswordRetrieval="false" maxInvalidPasswordAttempts="2147483647" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Hashed"/>
</providers>
</membership>
<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
<providers>
<clear/>
<add connectionStringName="MembershipConnectionString" applicationName="APP" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider"/>
</providers>
</roleManager>
<profile defaultProvider="SqlProvider" inherits="APP.Support.UserProfile">
<providers>
<clear/>
<add name="SqlProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="MembershipConnectionString" applicationName="APP"/>
</providers>
</profile>
无法调用此函数的 WPF 项目中的应用配置是 -
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="30">
<providers>
<clear/>
<add name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="6" connectionStringName="MembershipConnectionString" applicationName="APP" enablePasswordRetrieval="false" maxInvalidPasswordAttempts="2147483647" enablePasswordReset="true" requiresQuestionAndAnswer="true" requiresUniqueEmail="true" passwordFormat="Hashed"/>
</providers>
</membership>
<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
<providers>
<clear/>
<add connectionStringName="MembershipConnectionString" applicationName="APP" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider"/>
</providers>
</roleManager>
<profile defaultProvider="SqlProvider" inherits="APP.Support.UserProfile">
<providers>
<clear/>
<add name="SqlProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="MembershipConnectionString" applicationName="APP"/>
</providers>
</profile>
调用代码是 -
Application.Current.Properties["UserName"] = username;
UserProfile profile = UserProfile.GetUser(username);
Application.Current.Properties["LoggedInUser"] = profile.Name;
如果其他人处于这种情况,这似乎是不可能的。
我最终在我的支持项目中编写了一些SQL方法来检索用户配置文件信息。
会员数据库中的个人资料信息以相当奇怪的方式存储,但它是可提取的 -
属性名称 - 用户代码:S:0:2:名称:S:2:9:用户 ID:S:11:8:
属性值 - XXTEST USER00000001