嗨,我一直在尝试将 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 之前,调用以下属性代码 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);
}
}
}
输入用户名和密码后执行登录方法。按下登录按钮后,执行调用登录方法的登录操作,女巫抛出以下异常:
{“无法加载类型 '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: