[英]Unit testing WebMatrix.WebData with Microsoft Fake Framework MVC4
[英]Webmatrix.WebData Login method results in exception
嗨,我一直在嘗試將SimpleMembershipProvider集成到我的asp.net mvc應用程序中,但我似乎遇到了一些問題。
這是我在web.config中的內容:
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider"/>
</providers>
</membership>
這是我試圖運行以便登錄用戶的代碼:
public bool Login(string userName, string password, bool rememberMe)
{
return WebSecurity.Login(userName, password, rememberMe);
}
在所有這些之前調用以下屬性代碼調用get並且它工作正常:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class MembershipInitializerAttribute : ActionFilterAttribute
{
private const string CONNECTIONSTRING_NAME = "eShopConnectionString";
private const string DATABASE_TABLE_NAME = "Users";
private const string DATABASE_TABLE_IDENTIFIER_COLUMN = "UserId";
private const string DATABASE_TABLE_USER_NAME_COLUMN = "UserName";
private const bool AUTO_CREATE_TABLES = true;
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection(CONNECTIONSTRING_NAME, DATABASE_TABLE_NAME, DATABASE_TABLE_IDENTIFIER_COLUMN, DATABASE_TABLE_USER_NAME_COLUMN, AUTO_CREATE_TABLES);
}
}
}
在我輸入用戶名和密碼后執行登錄方法。在我按下登錄按鈕后,執行了調用Login方法的登錄操作,巫婆拋出以下異常:
{“無法加載類型'WebMatrix.WebData.SimpleMembershipProvider'。(F:\\ Programare \\ Projects IDE \\ Visual Studio \\ 2012 \\ e-shop \\ Backend \\ WebApi \\ e-shop.WebApi \\ web.config第73行)”}
在我做了一個研究之后,許多人建議將WebMatrix.WebData Copy Local屬性設置為true。
在我這樣做后,似乎應用程序啟動時出現了問題,因為我不再看到可以插入我的憑據的屏幕,我立即得到一個帶有此消息的屏幕:
描述:處理為此請求提供服務所需的配置文件時發生錯誤。 請查看下面的具體錯誤詳細信息並相應地修改配置文件。
分析器錯誤消息:在應用程序的預啟動初始化階段,無法調用此方法。
我做錯了什么,如何糾正?
編輯
我也得到了這個StackTrace:
您的web.config條目看起來不正確。 add元素中的type屬性應包含逗號后的程序集名稱。 這是web.config條目應該是什么樣子。
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
請注意,除了具有程序集名稱之外,最好使用clear元素以確保不注冊多個提供程序,這可能會導致奇怪的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.