![](/img/trans.png)
[英]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.