2013-08-21 33 views
0

我上传我的项目到IIS,我用我的custome sqlmembership provider.and创建角色和用户,但是当我编辑/删除/更新数据时,它告诉我“你没有权限做“但在角色已经定义它可以做到这一点。 加我使用VS ASP.NET配置工具,添加用户和角色,但当点击测试按钮onAspNetSqlRoleProvider时,它告诉我没有发现数据库。它与VS内置服务器工作正常,但我上传IIs,它会给出错误。AspNetSqlRoleProvider coulndt查找数据库

这里是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> 
+0

你可以显示“OSProjeConnectionString”? –

+0

是的,我添加了连接字符串 – sakir

+0

更改Integrated Security = false,这样它将采用连接字符串中提供的用户名和密码。 –

回答

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文件夹,其自动为应用程序相关数据创建。欲了解更多详情,请阅读this