簡體   English   中英

ASP.Net成員資格提供程序

[英]ASP.Net membership provider

有沒有一種方法可以禁止ASP.Net成員資格提供程序使用web.config?

目前,它在web.config中存儲一個連接字符串和一個sqlMembershipProvider,這不是我想要的位置。

謝謝

通常,您可以在調用提供程序的默認構造函數並對其調用Initialize使用它。 但是,如果沒有web.config,就不可能使用System.Web.Security.Membership抽象,因為Membership類硬連接到配置文件。 使用Membership類時,它將實例化您在配置文件中配置的類型。

正如我所說,當您不想在配置文件中進行配置時,可以在代碼中創建它。 這將是一個很好的方法,尤其是當您擁有自己的IoC框架時(您可以將Membership門面視為僅用於從MembershipProvider派生的類型的IoC實現)。 這是一個如何創建SqlMembershipProvider的示例:

var configuration = new NameValueCollection();

configuration.Add("name", "SqlProvider");
configuration.Add("connectionStringName", "SqlServices");
configuration.Add("applicationName", "MyApplication");
configuration.Add("enablePasswordRetrieval", "false");
configuration.Add("enablePasswordReset", "true");
configuration.Add("requiresQuestionAndAnswer", "true");
configuration.Add("requiresUniqueEmail", "false");
configuration.Add("passwordFormat", "Hashed");
configuration.Add("maxInvalidPasswordAttempts", "5");
configuration.Add("passwordAttemptWindow", "10");

var provider = new SqlMembershipProvider();
provider.Initialize("SqlProvider", configuration);

// And here store it in a static field or register it with your
// favorite IoC container.
container.RegisterSingle<MembershipProvider>(provider);

祝好運。

提供者管道是配置驅動的。

根據您的經驗水平,您也許可以推出以其他方式初始化的自己的提供程序,但這絕對不是一件微不足道的任務,並且充滿了微妙的陷阱,這些陷阱會在最不合時宜的時刻浮出水面,也許是當老板登錄時並且他的網絡密碼被泄露。

嘗試以編程方式初始化內部提供程序將是一種挫敗感。

如果您要解釋為什么不喜歡將配置文件用於umm,這可能會有所幫助?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM