繁体   English   中英

Webmatrix.WebData登录方法导致异常

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM