【发布时间】:2013-08-07 16:17:03
【问题描述】:
我在 VS2012 中创建了一个新网站——不是项目——添加了连接字符串,创建了表,然后使用 ASPNET CONFIGURATION 创建了几个角色和一个用户,这反过来又自动在我的数据库中创建了相应的表:用户、UsersInRoles、角色、成员资格和角色。几乎按预期工作。对于 4.5 (SimpleMembershipProvider),它不会创建所有存储过程,并且额外的代码用于旧的 MemberShipProvider。
我想在 Profile 提供者中添加一些字段,就像我在 MembershipProvider 中使用的一样:
<properties> <add name="myWhatEver" type="System.Int32" allowAnonymous="false"/> </properties>
但是当我尝试调用后面的代码时,它说“配置文件”不存在。所以我在网上搜索并使用VS2012阅读,如果你创建一个网站,而不是一个项目,它默认不附带配置文件,所以你必须创建一个自定义的。
之后我在 AppCode cs 中添加了以下代码:
命名空间 myNameSpace {
public class UserProfile : ProfileBase { public static UserProfile GetUserProfile(string username) { return Create(username) as UserProfile; } public static UserProfile GetUserProfile() { return Create(Membership.GetUser().UserName) as UserProfile; } [SettingsAllowAnonymous(false)] public string myWhatEver1 { get { return base["myWhatEver1"] as string; } set { base["myWhatEver1"] = value; } } }
在 WebConfig 中:
<profile defaultProvider="MYProfileProvider" inherits="myNameSpace.UserProfile">
<providers>
<clear />
<add name="MYProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="MYDBConn"/>
</providers>
</profile>
<membership defaultProvider="MYMembershipProvider">
<providers>
<clear />
<add name="MYMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="MYDBConn" applicationName="/"/>
</providers>
</membership>
<roleManager defaultProvider="MYRoleProvider">
<providers>
<clear />
<add name="MYRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="MYDBConn" applicationName="/"/>
</providers>
</roleManager>
我转到后面的页面,它会识别我的自定义配置文件!在我运行页面并得到这个之前,我都退出了:
找不到存储过程“dbo.aspnet_CheckSchemaVersion”。
现在呢?很确定 SimpleMembershiProvider 不使用像 MembershipProvider 这样的存储过程,我真的不想在数据库中安装 MembershipProvider。必须有一些东西我可以添加到我的代码中,以便它按原样工作。
有什么建议吗??
谢谢。
【问题讨论】:
标签: asp.net .net-4.5 simplemembership sqlprofileprovider