2010-08-11 51 views
1

我們的網站有兩個ASP.NET會員供應商。在一個內置,以及一個自定義(SqlMembershipProvider的。ASP.NET會員資格 - 現場提供兩名供應商

我能夠登錄到這兩個沒有問題,但我沒有必要要求有兩個在同一時間登錄的能力。

的問題我有如下:。

用戶「[email protected]」登錄到內置的提供商他們然後導航到我們需要自定義提供的網站

的部分在此頁面。我可以檢查他們是否已通過身份驗證,並獲取他們的用戶名。然後我可以從CustomUserGetUser方法獲取MembershipUser對象。 (HttpContext.Current.User.Identity.Name)

用戶名「[email protected]」也可能存在於自定義提供程序的用戶中(很有可能)。

但是,我不希望他們在這裏登錄,因爲他們沒有對自定義提供程序進行身份驗證。

那麼,是否有可能檢查生成的是哪個proivider HttpContext.Current.User。

希望這一切都有道理!

+0

嗨Danny,自定義提供程序提供的MS不是什麼,並且您考慮使用角色來控制對網站不同部分的訪問? – Lazarus 2010-08-11 11:47:50

+0

這是一個使用Umbraco的解決方案,所以內置一個用於那裏。 需要自定義一個來驗證數據庫表。 用戶有兩個截然不同的地方可以登錄,而這些登錄信息不會共享。 我的一個想法是當用戶登錄到每個區域時設置會話變量,即當他們登錄到成員區時爲Session [「isMember」],而當他們登錄到其他地方時則爲Session [「isDef」]。 我可以檢查這個會話變量時,我認證用戶。 – Danny 2010-08-11 12:05:02

回答

0

是的,如果您注意到RolePrincipal有一個屬性ProviderName

通常,當人們推出自己的提供商時,他們會忽略該字段的使用。

對於您的情況,只需修改您的自定義提供程序以標識其自身(如果尚未),並檢查用戶的屬性。