0

プロジェクトをIISにアップロードし、カスタムsqlmembershipプロバイダーを使用してロールとユーザーを作成しましたが、データを編集/削除/更新しようとすると、「それを行う権限がありません」と表示されますが、ロール内にはすでにありますそれができると定義します。さらに、VS ASP.NET 構成ツールを使用してユーザーとロールを追加していますが、テスト ボタン onAspNetSqlRoleProvider をクリックすると、データベースが見つからないことがわかります。VS ビルドイン サーバーでは正常に動作しますが、II をアップロードするとエラーが発生します。

これはweb.configの一部です

<system.web>
    <roleManager enabled="true" />
    <customErrors mode="RemoteOnly" defaultRedirect="~/Admin/Hata.aspx" />
    <authentication mode="Forms">
      <forms cookieless="AutoDetect" loginUrl="~/Login.aspx" />
    </authentication>
    <membership defaultProvider="MySqlMembershipProvider">
      <providers>
        <clear/>
        <!--Add a customized SqlMembershipProvider -->
        <add name="MySqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider"
             connectionStringName="OSProjeConnectionString" enablePasswordRetrieval="false"
             enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
             passwordFormat="Hashed" maxInvalidPasswordAttempts="15" minRequiredPasswordLength="5" 
             minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             passwordStrengthRegularExpression="">
      </providers>
    </membership>

    <connectionStrings>

        <add name="OSProjeConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=OSProje;Integrated Security=SSPI; User ID=sa;Password=password;" />
      </connectionStrings>

……………………

編集:この行を追加して問題を修正します

<roleManager defaultProvider="roleProvider">         
    <providers>
        <add connectionStringName="OSProjeConnectionString" 
             name="roleProvider"
             type="System.Web.Security.SqlRoleProvider" />
    </providers>
</roleManager>
4

1 に答える 1

1

これが問題を引き起こしている行です。ただし、DefaultProvider を指定していないため、AspNetSqlRoleProvider をプロバイダーとして使用します。ここで、AspNetSqlRoleProvider の設定を確認する必要があります。または、次のコードを追加できます。

<roleManager 
enabled="false" 
cacheRolesInCookie="false" 
cookieName=".ASPXROLES" 
cookieTimeout="30" 
cookiePath="/" 
cookieRequireSSL="false" 
cookieSlidingExpiration="true" 
cookieProtection="All" 
defaultProvider="AspNetSqlRoleProvider" 
createPersistentCookie="false" 
maxCachedResults="25">
<providers>
  <clear />
  <add 
     connectionStringName="LocalSqlServer" 
     applicationName="/" 
     name="AspNetSqlRoleProvider" 
     type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  <add 
     applicationName="/" 
     name="AspNetWindowsTokenRoleProvider" 
     type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0,        
     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
 </providers>
</roleManager>

いくつかの変更を加えて。

App_Data フォルダーに関しては、アプリケーション関連のデータ用に自動的に作成されます。詳細については、これをお読みください

于 2013-08-21T07:53:50.857 に答える