【问题标题】:WPF Membership Provider Custom User ProfileWPF 成员资格提供程序自定义用户配置文件
【发布时间】:2013-09-10 19:03:42
【问题描述】:

我有一个 Web 应用程序和一个 WPF 应用程序共享一个实用程序支持项目。

当我尝试让我的自定义会员用户配置文件在 WPF 项目上运行时,我遇到了一个错误并且不确定要查找什么。

从WPF项目调用支持项目中的GetUser方法出现错误,错误为-

无法从程序集“System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”加载类型“APP.Support.UserProfile”。

用户个人资料代码是 -

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;

【问题讨论】:

  • 注意 - 我假设这是因为 WPF windows 应用程序无法使用 aspnet 成员资格提供程序,但是 members.GetAllUsers() 工作正常..

标签: c# wpf asp.net-membership


【解决方案1】:

如果其他人处于这种情况,这似乎是不可能的。

我最终在我的支持项目中编写了一些 SQL 方法来检索用户配置文件信息。

Membership 数据库中的个人资料信息以一种相当奇怪的方式存储,但它是可提取的 -

PropertyNames - UserCode:S:0:2:Name:S:2:9:UserID:S:11:8:

PropertyValues - XXTEST USER00000001

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多