2011-12-30 53 views
0

嗨,MVC網站上的雙用戶名/密碼驗證?

我已經建立了一個使用Membership的ASP.NET MVC網站,這工作正常。在網站beta測試期間,我需要確保只有beta測試者能夠訪問我的網站,因此必須進行第二次(真正的第一次登錄)登錄。

問題是如何在不涉及當前成員設置的情況下儘可能簡單快捷地完成此操作?

如果用戶名和密碼是靜態/硬編碼,那麼可以,但重要的是一旦外部登錄完成,在會話期間不再進行登錄請求。目前的MVC Membership與以前一樣工作很重要。

+1

爲什麼不只是添加* beta *角色? – 2011-12-30 20:31:13

+0

問題是這個網頁應該在有和沒有會員帳戶的情況下進行測試。但讓我們仔細觀察一下,在目前的會員中,我有兩個角色,User = 0和Admin = 1。在一些地方,可以使用CurrentRole> 0來完成角色驗證。因此,我將不得不追蹤這些地方並解決它。 BetaUser可以在用戶和管理員之間添加(BetaUser = 1)。這樣可以在logedin時測試網頁,但是如何在沒有會員帳號的情況下進行測試? – Banshee 2011-12-30 20:41:54

+0

在網站代碼的外部使用一些方法來控制它,例如VLAN或數據包過濾。問題是,如果您爲測試添加了額外級別的身份驗證,那麼您的測試無效,因爲您只是爲了測試而更改代碼......正在測試的代碼。 – 2011-12-30 20:46:15

回答

0

我結束了一個新角色(測試者)。這確實涉及很多重構,但它似乎工作得很好。

當testuser登錄並且站點設置爲測試模式時,返回的用戶將是「」巫婆,表示沒有用戶。

1

不幸的是,Forms和BasicAuthentication模式不能一起工作。這是因爲HttpContext上只有一個「IPrincipal」變量(恕我直言,稱爲用戶)。但是,如果您同時使用兩種不同的身份驗證方案,則最後一個會始終獲勝。這就是爲什麼這不被支持。人會得到意想不到的結果。

但它可以很容易地完成:您需要自己實現基本身份驗證。這可以在BeginRequest事件中完成。您可以將其掛接到Global.asax(首選)或HTTP模塊中。

實現基本驗證並不複雜:http://en.wikipedia.org/wiki/Basic_access_authentication

如果你想硬編碼的,你會在30分鐘完成的基本身份驗證代碼中的憑據。

+0

你有關於此的更多信息嗎? Maby鏈接? – Banshee 2012-01-10 10:01:57

+0

編輯我的帖子以澄清。 – usr 2012-01-10 17:50:54