asp.net mvc 3 アプリにカスタム プロファイル プロバイダーが必要です。問題は、ASP.NET メンバーシップ/ロール/プロファイル プロバイダーによって生成された既定の DB を使用したくないということです。これは主に、認証が WebService で既に行われており、DB が既に存在するためです。
ユーザー プロファイル プロパティを入力して、サイトのさまざまな領域で使用したいと考えています。
この例 ( How to assign Profile values? ) を見てみましたが、次のエラーが発生しています:
ファイル 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 アプリケーション)