我正在構建一個ASP.NET MVC網站,我想使用DotNetOpenAuth來實現OpenID登錄(我徹底刪除了用戶名/密碼登錄)。使用OpenID(通過DotNetOpenAuth)以及用戶角色和其他Membership Provider功能
到目前爲止,我一直在使用角色系統,配置文件系統和基本註冊系統爲ASP.NET成員提供程序編寫默認用戶名/密碼系統的代碼。現在,在我轉移到OpenID的過程中,我預見了一些問題,特別是與對接,由ASP.NET會員供應商提供的會員控制。
看看DotNetOpenAuth MVC示例,我看到對FormsAuthentication系統的唯一引用是創建一個AuthCookie
,稍後再調用FormsAuthentication.SignOut()
。因此,雖然示例代碼的另一部分調用User.Identity.IsAuthenticated
,但我不確定是否可以將ASP.NET Membership Provider函數用於此OpenID系統。
這個OpenID系統與ASP.NET Membership Provider接口嗎?如果不是,我可以以某種方式解決這個問題嗎?
如果上述是完全不可能的,我認爲我的下一步行動將只是滾動我自己的數據庫表,並手動編寫代碼以使用它們從我的帳戶控制器。我注意到Stack Exchange Data Explorer採取這種方法,但這是否是正確的行動方針?
編輯:只是要確保我使用的是正確的術語,通過「ASP.NET成員資格提供」,我的意思是使用由aspnet_regsql.exe
工具生成的表格的提供者。
精彩回答 - 今天即將實施。非常感謝! – 2010-07-12 18:04:56
我仍然可以使用'Membership.GetUser()',對吧? – 2010-07-12 23:23:07
是的,你仍然可以使用Membership.GetUser()。 只要您將用戶名傳遞給RedirectFromLoginPage,您就基本上等於通過內置登錄控件發生的情況。 – jwsample 2010-07-13 02:40:18