2010-10-17 116 views
2

對於我的ASP.NET MVC應用程序,我發現處理唯一標識符比較困難,所以我將自己的字段添加到ASPNET_USERS表 - UserIdInt(實際上是一個bigint!)所以大多數的用戶操作使用userIdInt作爲參考。asp.net mvc - 會員供應商

無論如何,我兩種方法之間的辯論:

1)當用戶登錄時,從數據庫中查找和存儲在一個會話變量中userIdInt和任何時間會話變量溜走,再看看它將它放回到會話變量中。 (可以在MVC應用程序中使用會話,對吧?)

2)任何時候需要執行操作時,只需將userName傳遞給數據庫,並通過在ASPNET_Users表上進行連接等操作來處理數據庫端的UserIdInt來自用戶的操作需要被執行。

我非常傾向於1)...但我想確保自己走在正確的軌道上。

我問這個問題服務器錯誤首先,但我被告知在這裏問這個問題。

回答

1

progtick,

你可能會更好的尋找到使用自定義配置文件提供者,因爲這將允許您離開aspnet_ *表的是(這是在的情況下一個好主意的SQLSERVER變化更高版本它們如何操作)以及爲您的應用程序提供額外的額外益處,讓您可以獲得大量與配置文件相關的屬性。我不能誇大在沿着這條軌道上的好處,因爲我發現在我的標準asp.net應用程序以及我的mvc中都有這樣的方法非常有用。

你可以通過查看救援人員到場一對夫婦這些鏈接得到什麼參與這樣的感受: 這裏有一個對SO對於初學者:

Implementing Profile Provider in ASP.NET MVC

和一個從我的老搭檔,李杜蒙德:

http://leedumond.com/blog/asp-net-profiles-in-web-application-projects/

希望這有助於

+0

感謝您抽出時間發佈鏈接,但它並不完全回答我的問題(或者我無法看到它)。我用一種稍微不同的方法推出了我的自定義配置文件提供程序。我已經觸及aspnet表的唯一方法是將一列userIdInt添加到aspnet_user表。沒有其他變化! – TPR 2010-10-17 11:22:17

0

的替代方法是更改​​表單身份驗證票據以將您的唯一ID添加到存儲在Cookie中的數據。然後,通過實現一個自定義IPrincipal,你可以在User對象可用的任何地方使用唯一的ID。

+0

啊,在網上找了個例子嗎?做錯了很容易。 – TPR 2010-10-18 01:41:14

+0

這是一個很好的例子:http://blog.codevelop.dk/post/2007/11/24/ASPNET-20-Forms-authentication-Keeping-it-customized-yet-simple.aspx – Clicktricity 2010-10-18 09:22:40