我在這裏有一些獨特的情況。我正在製作一個Web應用程序,該應用程序將具有使用不同Web應用程序憑據登錄的能力。例如,您可以登錄/註冊我的網站,或者您可以登錄/註冊您的YouTube帳戶。我沒有使用OpenID,因爲在這種情況下我需要訪問YouTube的數據。在運行時更改成員資格提供程序ApplicationName。怎麼樣?
我正在使用ASP.NET MVC 3 EF4自定義成員資格,角色,配置文件提供程序。
問題是用戶名不能是唯一的,因爲具有YouTube用戶名的用戶名可能與在我的網站上註冊的用戶名相同。所以我通過在用戶表中指定用戶類型來解決問題。這幾乎是一個組合鍵(用戶ID和用戶類型)。
我有一個自定義的授權屬性,它檢查用戶所在的角色,但現在我需要實現一個自定義IPrincipal,因爲我需要傳遞一個用戶類型。唯一的問題是我在哪裏存儲?會議?
原本我以爲這就是應用程序表過去,我不得不與一時成功,但閱讀有線程問題,而我得到的會話故障了這一切不是很大的地方:(
我想知道最好的辦法是因爲我不能在提供程序中使用重寫的方法,因爲我必須爲某些方法添加一個UserType參數,但這會中斷提供程序的功能。
編輯: 我基本上需要有能力在程序運行時更改ApplicationName我試着這樣做,唯一的問題是當我停止我的開發服務器,但離開我的瀏覽器打開,然後再次運行我的開發服務器它wouldnt保持應用程序名稱。
編輯: 我已經改變了我的應用程序使用OAuth,我從來沒有找到一個好的解決方案。
大問題。過去我不得不這樣做,只有1/2的人喜歡我創建的解決方案。當我從我妻子那裏拿回我的電腦時,我會告訴你一些代碼。 :) – 2011-06-23 03:33:07