0

SimpleMembershipProvider で私が直面している特有の問題を解決できることを願っています。

SimpleMembership 機能を使用してユーザーとロールの情報を保存する MVC4 アプリケーションがあります。これはすべて、フロントエンド MVC4 アプリケーションから完全に機能します。

また、同じ SimpleMembershipProvider を呼び出して、標準の ValidateUser() メソッドを使用してモバイル アプリからユーザー資格情報を検証する Web サービスもあります。

ただし、ValidateUser() メソッドに到達する前に、WebSecurity.InitializeDatabaseConnection メソッドを使用して WebSecurity オブジェクトを初期化する必要があります。これにより、以下のエラーが発生します。

「ロール マネージャー機能が有効になっていません。」

ポータルから取得した同じコードを使用して、サービスのスタートアップ内で WebSecurity オブジェクトを初期化しています。

    if (!WebSecurity.Initialized)
    {
    WebSecurity.InitializeDatabaseConnection("PortalContext", "UserProfile", "UserId", "UserName", autoCreateTables: true);
    }

Web サービスの web.config に appSettings キーが含まれていることを確認しました

    <add key="enableSimpleMembership" value="true" /> 

また、web.config の system.web セクションに rolemanager とメンバーシップの詳細を含めました。

<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear />
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" />
</providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear />
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>

私は今、完全に途方に暮れており、可能な解決策を求めて午前中ずっとグーグルで過ごしてきました。

これが発生している理由を考えられる人はいますか?

4

1 に答える 1

0

同じソリューションに複数のプロジェクトがあり、移行を使用している場合は、database-update を実行する前に、スタートアップ プロジェクトとして移行を含むプロジェクトを作成します (ソリューション エクスプローラーで [プロジェクト名] を右クリック > [スタートアップ プロジェクトとして設定])。

于 2014-09-10T05:12:49.637 に答える