[Authorize(Roles = "admin")] 属性の使用に問題があります。
[Authorize(Roles = "admin")]
public ActionResult GetAllLocations()
{
次のエラーが表示されます
「WebSecurity」クラスの他のメソッドを呼び出す前に、「WebSecurity.InitializeDatabaseConnection」メソッドを呼び出す必要があります。この呼び出しは、サイトのルートにある _AppStart.cshtml ファイルに配置する必要があります。
私は自分のデータベースで最初に EF 5 コードを使用して MVC 4 アプリケーションを構築しました。
少し背景:
MembershipProvider から継承したカスタム メンバーシップ プロバイダーを作成しました
この問題についてこのサイトで多くの質問を見てきましたが、答えが見つかりませんでした。
いくつかの回答で、メンバーシップ プロバイダーを無効にする方法を見ました
このような:
<add key="enableSimpleMembership" value="false"/>
<add key="autoFormsAuthentication" value="false"/>
これは、カスタムメンバーシッププロバイダーを実装した方法です
<membership defaultProvider="ATWMembershipProvider">
<providers>
<clear/>
<add name="ATMMembershipProvider" type="AroundTheWorldWeb.Infrastructure.AuthenticationProvider.ATMMembershipProvider"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
equiresUniqueEmail="false"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10" applicationName="myApplication" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
<providers>
<remove name="AspNetSqlRoleProvider" />
<add name="AspNetSqlRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<!-- note: WebMatrix registers SimpleRoleProvider with name
'AspNetSqlRoleProvider'. I don't know why but i kept it. -->
</providers>
</roleManager>