2013-06-21 33 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

为什么不能登录屏幕。什么是例外? –