1

Visual Studio 2012 でSimpleMembershipモデル化されたを実装するアプリケーションがあります。メンバーシップ プロバイダーとしてデータベースを使用しており、 と の両方を構成しています。カスタムユーザーとロールを作成して追加し、ユーザーが登録してログインできるようにします。ただし、プログラムでメンバーシップ プロバイダーに問い合わせようとすると、SQL 接続エラーが発生します。MVC TemplateSQL Server CE (4)web.configInitializeSimpleMembershipAttributeinitializerdatabaseAccount controllerUser.IsInRole(<rolename>)

SQL Server への接続を確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: SQL ネットワーク インターフェイス、エラー: 26 - 指定されたサーバー/インスタンスの検索中にエラーが発生しました)

このエラーは、ローカル マシンの起動時にのみ要求が成功する場合があるため、一定ではありません。再コンパイルするとエラーがスローされ、再起動するだけで問題が解決する場合があります。アプリケーション プール ID をローカル ユーザーに設定していますAdministrator privilegesSQL Server CEアプリケーションの他のデータベースに使用していますが、それらはすべて正常に機能します。

MVC 4 applicationを使用して新しいものを作成しましたVS templateが、同じ問題があります。エラーの原因を特定する方法や修正を実装する方法について、私は途方に暮れています。

どんな助けでもありがたく受け取られます。

4

1 に答える 1

1

残念ながら、通常の User.IsInRole API ではまだ標準プロバイダーを使用しているため、ロールを確認することはできません。SimpleRoleProvider が GetRolesForUser を公開しているため、ユーザーが次のようなロールにあるかどうかを確認できることがわかりました。

Roles.GetRolesForUser("mercury2269").Contains("Admin")
于 2013-02-14T01:10:44.730 に答える