2013-06-21 69 views
0

我創建了一個MVC 4應用程序,並且第一次嘗試使用成員資格。MVC 4會員無法登錄

我有一個sql數據庫,我創建了會員表並使用「ASP.NET配置」我選擇了我的提供者,添加了角色和用戶。

當我嘗試使用登錄頁面登錄時,出現錯誤;

要調用此方法,「Membership.Provider」屬性必須是「ExtendedMembershipProvider」的 實例。

我不使用天青也不使用NuGet。

我的配置文件看起來像;

<membership defaultProvider="SqlMembershipProvider"> 
    <providers> 
    <add connectionStringName="ApplicationServices" name="SqlMembershipProvider" 
     type="System.Web.Security.SqlMembershipProvider" /> 
    </providers> 
</membership> 
<roleManager enabled="true" defaultProvider="SqlRoleProvider"> 
    <providers> 
    <add connectionStringName="ApplicationServices" name="SqlRoleProvider" 
     type="System.Web.Security.SqlRoleProvider" /> 
    </providers> 
</roleManager> 

這就是爲我添加的全部內容。

我的帳戶控制器具有以下屬性,但刪除它沒有區別。

[InitializeSimpleMembership] 

並且它在這條線上失敗;

if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) 

我需要做什麼才能夠登錄用戶?

回答

0

您在配置中設置了SqlMembershipProvider,但試圖使用SimpleMembershipProvider 選擇一個並相應地配置您的應用。 如果設置了分貝反對SimpleMembersip(最經常使用用戶ID,用戶名等領域表),然後改變你的配置如下,並確保InitializeSimpleMembershipFilter查找用戶id,用戶名字段,因爲它們建立在你的餐桌:

<membership defaultProvider="SimpleMembershipProvider"> 
    <providers> 
     <clear/> 
     <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" /> 
    </providers> 
</membership> 
<roleManager defaultProvider=「SimpleRoleProvider「> 
    <providers> 
    <add name=「SimpleRoleProvider「 type=「WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData「/> 
    </providers> 
</roleManager> 

否則,設置SqlMembershipProvider的你可參照本頁面的底部:http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.aspx

+0

改變我的web.config如圖意味着我甚至不能讓我的登錄屏幕。將嘗試其他 – griegs

+0

使用sqlprovider時出現同樣的問題。這從來沒有用過這麼難 – griegs

+0

爲什麼不能登錄屏幕。什麼是例外? –