0

我将我的项目上传到 IIS,我使用了我的客户 sqlmembership 提供程序。并创建了角色和用户,但是当我试图编辑/删除/更新数据时,它告诉我“你没有这样做的权限”但是在角色里面已经定义它可以做到这一点。另外,我正在使用 VS ASP.NET 配置工具来添加用户和角色,但是当单击 AspNetSqlRoleProvider 上的测试按钮时,它告诉我找不到数据库。它与 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>

.....................................

edıt:我解决了添加此行的问题

<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 回答