asp.net mvc自定义配置文件提供程序

| 我希望在asp.net mvc 3应用程序中具有自定义配置文件提供程序。问题是,我不想使用由ASP.NET成员资格/角色/配置文件提供程序生成的默认数据库,主要是因为已经使用WebService进行了身份验证并且数据库已经存在。 我想用用户个人资料属性来填充它们并在网站的不同区域内使用。 我看了这个示例(如何分配配置文件值?),但出现此错误:   尝试为文件附加自动命名的数据库   C:\\ Projects \\ FWManager \\ App_Data \\ aspnetdb.mdf失败。具有以下内容的数据库   存在相同的名称,或者无法打开指定的文件,或者   位于UNC共享上。 这是web.config
  <profile inherits=\"FWMembership.Membership.FWProfileProvider\" defaultProvider=\"AspNetSqlProfileProvider\" automaticSaveEnabled=\"false\" enabled=\"true\">
   <providers>
    <clear/>
    <add name=\"AspNetSqlProfileProvider\" type=\"System.Web.Profile.SqlProfileProvider\" connectionStringName=\"ApplicationServices\" applicationName=\"/\" />
   </providers>
  </profile>
这是我的习俗课
public class FWProfileProvider : ProfileBase
{
    [SettingsAllowAnonymous(false)]
    public string FirstName
    {
        get { return base[\"FirstName\"] as string; }
        set { base[\"FirstName\"] = value; }
    }

    [SettingsAllowAnonymous(false)]
    public string LastName
    {
        get { return base[\"LastName\"] as string; }
        set { base[\"LastName\"] = value; }
    }

    [SettingsAllowAnonymous(false)]
    public int? UserID
    {
        get { return base[\"UserID\"] as int?; }
        set { base[\"UserID\"] = value; }
    }

    [SettingsAllowAnonymous(false)]
    public string UserCompany
    {
        get { return base[\"UserCompany\"] as string; }
        set { base[\"UserCompany\"] = value; }
    }

    [SettingsAllowAnonymous(false)]
    public string Email
    {
        get { return base[\"Email\"] as string; }
        set { base[\"Email\"] = value; }
    }

    public StringCollection Entitlements
    {
        get { return base[\"Entitlements\"] as StringCollection; }
        set { base[\"Entitlements\"] = value; }
    }

    public string username;

    public FWProfileProvider()
    {
    }

    public FWProfileProvider(string username)
    {
        this.username = username;
    }

    static public FWProfileProvider CurrentUser
    {
        get
        {
            return (FWProfileProvider)
                   (ProfileBase.Create(\"Joe\"));
        }
    }

}
关键是避免使用asp.net默认成员资格表。 有任何想法吗? 编辑: 忘了添加-此Web应用程序,但配置文件提供程序以相同的解决方案放置在类库项目中: 解 |-> FWProfile(类库项目) |-> UI(asp.net mvc 3 Web应用程序)     
已邀请:
我认为您也必须编写自己的MemberShip Provider。您的web.config引用默认的asp.net成员资格提供程序。如何编写会员资格提供者,您可以在此处找到自定义会员资格提供者 默认成员资格提供程序使用连接字符串到本地安装的SQL Express数据库中,这会导致您出错。 您的web.config看起来像这样:
<membership defaultProvider=\"MyCustomMembershipProvider\">
  <providers>
    <clear />
    <add name=\"MyCustomMembershipProvider\"
      type=\"FWMembership.Membership.MyCustomMembershipProvider\"
      enablePasswordRetrieval=\"true\"
      enablePasswordReset=\"true\"
      requiresQuestionAndAnswer=\"false\"
      requiresUniqueEmail=\"true\"
      passwordFormat=\"Clear\"/>
  </providers>
</membership>
<profile defaultProvider=\"MyProfileProvider\" enabled=\"true\">   
   <providers>    
      <clear/>    
         <add name=\"MyProfileProvider\" type=\"FWMembership.Membership.FWProfileProvider\" connectionStringName=\"ApplicationServices\" applicationName=\"/\" />   
   </providers>  
 </profile>
希望这可以帮助。     

要回复问题请先登录注册