簡體   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