2013-02-18 71 views
0

我目前正在ASP.NET中的一個網站上工作,其中需要登錄系統。但是,如果錯誤地假設角色數據庫的連接字符串與我的Microsoft SQL數據庫的連接字符串相同,我意識到我不知道角色數據庫在哪裏。我在計算機上搜索了一些類似於角色數據庫(搜索角色和.mdf)的東西,但沒有發現任何可以識別的東西。你知道我在這裏犯了什麼錯誤嗎?我必須專門創建這個角色數據庫嗎?提前找不到角色數據庫

<system.web> 
    <compilation debug="true" targetFramework="4.5"/> 
    <httpRuntime targetFramework="4.5"/> 
    <roleManager enabled="true" defaultProvider="providerForLogin"> 
     <providers> 
     <add name="providerForLogin" type="System.Web.Security.SqlRoleProvider" applicationName="WebSite4" connectionStringName="ConnectionString" /> 
     </providers> 
    </roleManager> 
    </system.web> 
</configuration> 

感謝您的幫助,您可以給:到目前爲止我的web.config代碼讀取如(無頂部個人識別連接字符串)!

+0

如果它們是*不同的數據庫,那將會很奇怪。從外觀上看,您使用的是標準的ASP.NET提供程序...所以請退後一步。你想做什麼?如果您確實想要使用ASP.NET Membership Provider的路線..... http://msdn.microsoft.com/zh-cn/library/yh26yfzy(v=vs.100).aspx – Arran 2013-02-18 15:42:57

回答

2

如果指定了相同的數據庫連接字符串,則ASP.Net成員資格不會創建單獨的數據庫。

您所做的方式是正確的,它將用戶,角色和成員資格表保存在您的表所在的同一數據庫中。

FYI:如果你的應用是新的,請使用Universal Providers這是老ASP.Net成員替換(您當前使用的那個)

+0

Doing像這樣的事情我最終與錯誤:「無法找到存儲過程'dbo.aspnet_CheckSchemaVersion'」。我假設這是因爲數據庫尚未初始化或類似的東西?這與運行aspnet_regsql.exe有關嗎? – 2013-02-18 16:04:07

+0

使用aspnet_regsql.exe創建成員資格表已過時。請使用使用NuGet的univeral providers(請參閱我的答案)。 – Win 2013-02-18 16:05:36

+1

+1感謝您的信息。 – AbZy 2013-02-18 16:20:25

1

還有就是你需要爲運行名爲aspnet_regsql.exe的可執行文件要創建的成員資格模式。按照this tutorial

然而,就像@Win說,這是一箇舊的。如果您使用VS2012進行開發,請使用Universal Providers

+0

非常感謝!我正在尋找一個教程,教會我這個角色的事情! – 2013-02-18 16:07:35