爲了更好地理解如何在.net MVC4應用程序中創建auth功能,我想我會分解「Internet應用程序」模板生成的網站。最終,我正在研究如何實現聲明感知的內容(例如:https://github.com/brockallen/BrockAllen.MembershipReboot).net 4.5 Web.Security.Membership.Providers刪除拋出system.notsupported異常。爲什麼?
作爲此部分,我發現自己正在查看WebMatrix.WebData.WebSecurity.PreAppStartInit()方法,其中包含下面的代碼:
const string BuiltInMembershipProviderName = "AspNetSqlMembershipProvider";
var builtInMembership = Membership.Providers[BuiltInMembershipProviderName];
if (builtInMembership != null)
{
var simpleMembership = CreateDefaultSimpleMembershipProvider(BuiltInMembershipProviderName, currentDefault: builtInMembership);
Membership.Providers.Remove(BuiltInMembershipProviderName);
Membership.Providers.Add(simpleMembership);
}
如果我嘗試在點Membership.Providers.Remove(BuiltInMembershipProviderName);
運行在一個控制檯應用程序類似的東西,它拋出一個System.NotSupportedException被調用。如果該集合已調用SetReadOnly
方法,但這種情況尚未發生,那麼這是可以預料的。我不知道爲什麼會出現在控制檯應用程序代碼中,但不是Web應用程序。有人有主意嗎?