簡體   English   中英

如何以編程方式在ASP.NET MVC 5中注冊RoleProvider?

[英]How to programatically register a RoleProvider in ASP.NET MVC 5?

我已經使用依賴注入技術實現了角色提供程序。 因為該類沒有無參數構造函數(在那里注入了存儲庫),通常的web.config注冊方法不起作用。

我試圖在我的Global.asax應用程序啟動事件中手動注冊提供程序,但是我得到一個NotSupportedException指出無法修改Roles.Providers集合。

Roles.Providers.Clear();
Roles.Providers.Add(new RepositoryRoleProvider(new MyRepositoryFactory()));

在沒有無參數構造函數的情況下注冊角色提供程序的正確方法是什么?

有一篇文章介紹了如何實現和注冊角色提供程序 它使用“提供者模式”。

由於它使用“提供者模式”, 因此無法使用構造函數注入,因為構造函數被約束為使用默認的公共構造函數。

所以,你的選擇並不好:

  1. Initialize方法中實例化您的存儲庫工廠(注意它是否有默認構造函數,您可以將其類型字符串放在配置文件中並使用Activator.CreateInstance來構造它)。
  2. 使用對DI容器(服務定位器)的靜態引用來解析依賴關系。

如果您有選擇,最好使用ASP.NET Identity而不是成員身份,因為它更友好。

暫無
暫無

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

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