2013-08-21 116 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