2012-08-31 87 views
7

我一直使用ASP.NET會員供應商的方式,它已經很好地服務於我的基本目的。我意識到的一件事是,它將一堆Stored Procs等安裝到數據庫中。與EF的ASP.NET會員供應商

是否存在ASP.NET成員資格的EF實現?還是會有?

我有一個即將到來的項目,我需要通過一些GUI來擴展成員提供者的角色和授權功能。此外,每次我使用這個,我有兩個連接字符串在我的web.config一個DbContext一個應用程序服務特別是成員資格提供程序。爲什麼我不能只有一個?

回答

0

有貴賓會員管理系統的MVC3你可以看看或添加到您的項目。

可以玩弄他們,看看他們是如何工作的。一旦你知道去哪裏看,你就可以創建你自己的。

Membership ClassMembershipUser Class保存所有的用戶信息。例如,要取消批准,你可以做這樣一個用戶:

MembershipUser user = Membership.GetUser("userName"); 
user.IsApproved = false; 
Membership.UpdateUser(user); 

如果你想刪除一個用戶,你可以使用Membership.DeleteUser("userName");

Roles Class具有所有角色相關的信息。如Roles.GetUsersInRole("roleName")將返回角色roleName中所有用戶的列表。 Roles.CreateRole("roleName");將創建角色,並且Roles.DeleteRole("roleName");將刪除角色。

如果您需要的不僅僅是默認值,您可以查看Implementing a Membership Provider

只要有兩個數據庫,這是沒有必要的。您可以使用Aspnet_regsql工具將所有ASP.NET表,存儲過程等添加到數據庫。看看Installing the Database using Aspnet_regsql.exe。這將允許您只有一個數據庫,因此您可以刪除您的Web.Config中的asp.net連接字符串,然後更改AspNetSqlMembershipProvider 或其他人,以將連接字符串用於主數據庫。

0

對於ASP.NET成員資格提供程序和實體框架中的角色實現,需要導入EDMX文件中的ASPNETDB(成員資格數據庫)的所有視圖。例如vw_aspnet_MembershipUsers,vw_aspnet_Roles,vw_aspnet_UsersInRoles,vw_aspnet_Users等...

然後成員資格將通過EF運行。所以,你可以使用下面的函數來提供GUI。

這裏是控制器代碼。例如

// GET: /Membership/Edit/5 

    public ActionResult Edit(Guid id) 
    { 
     var recordToEdit = (from r in _db.vw_aspnet_Users where r.UserId == id select r).First(); 
     return View(recordToEdit); 
    } 

    public ActionResult Index() 
    { 
     return View(_db.vw_aspnet_MembershipUsers.ToList()); 
    } 

現在,如何將ASPNETDB合併到現有數據庫,以便在web.config中只創建一個連接字符串。 (你的問題:爲什麼我不能只有一個?)

這也可以使用下面的步驟。

ASPNETDB.MDF是成員資格提供程序數據庫,用於存儲和檢索數據庫中的成員資料 ,這裏我們將看看如何創建成員資格提供程序數據庫。用於創建Aspnetdb.mdf的命令是ASPNET_RegSQL.EXE

1.開始 - >程序 - > Microsoft Visual Studio 2005-> Visual Studio工具 - > Visual Studio 2005命令提示符。在Visual Studio 2005命令提示符

  1. 標題:」歡迎到Asp.Net Sql Server的嚮導」,嚮導會顯示輸入aspnet_regsql.exe的。這裏需要點擊Next

  2. 接下來會出現一個帶有「Select Setup Option」的嚮導。現在我們需要選擇安裝選項「爲應用程序目的配置sql server是默認的」。選擇你想要的和下一個。

  3. 將顯示一個窗口「選擇Sql Server數據庫」現在我們需要選擇我們的SQL Server數據庫。這裏需要設置服務器,認證類型和數據庫。 如果選擇默認名稱「aspnetDb.mdf」將被選中。如果你想修改現有的數據庫選擇該數據庫。

5.現在確認將顯示標題爲「確認您的設置」。現在檢查servername和數據庫名稱,然後單擊下一步。

  1. 將顯示「數據庫已創建或修改」窗口。現在,單擊Finish

在您需要選擇現有的數據庫以上步驟仔細,有些表(11+),意見,成員和角色的存儲過程將被添加到現有的數據庫....

享受它....謝謝你...

+0

如果您首先使用DbContext代碼,該如何做到這一點? – DarthVader

+0

對於Code First方法,可以使用Database上的ExecuteSqlCommand方法將非查詢命令發送到數據庫。 context.Database.ExecuteSqlCommand(「」); –

+0

對sql查詢或存儲過程不感興趣。誰在使用這些? – DarthVader