首页 新闻 赞助 找找看

自定义membership providers

0
悬赏园豆:20 [已解决问题] 解决于 2008-05-29 12:27
我的目的就是能好好利用工具箱中"登陆"组控件,同时用自己的数据库。<BR>这些天查了一些资料,但还是不太明白,怎么这么复杂呢。<BR>我首先自己写MembershipProvider,继承至SqlMembershipProvider<BR><BR>下面是重写CreateUser方法。<BR>public override MembershipUser CreateUser(string username,<BR> string password,<BR> string email,<BR> string passwordQuestion, <BR> string passwordAnswer,<BR> bool isApproved, <BR> object providerUserKey, <BR> out System.Web.Security.MembershipCreateStatus status<BR> )<BR> {<BR> SqlConnection conn = new SqlConnection(WebConfigurationManager.AppSettings["connStr"]);<BR> SqlCommand cmd = new SqlCommand();<BR> cmd.CommandText = "INSERT INTO [user] (name,pw) VALUES(@username,@password)";<BR> cmd.Parameters.Add("@username", SqlDbType.NChar, 50).Value = username;<BR> cmd.Parameters.Add("@password", SqlDbType.NChar, 50).Value = password;<BR> cmd.Connection = conn;<BR> conn.Open();<BR> cmd.ExecuteNonQuery();<BR> status = MembershipCreateStatus.Success;<BR> conn.Close();<BR> return null;<BR> }<BR><BR>web.config都配置好了。<BR>出现的错误是:<BR>找不到存储过程 'dbo.aspnet_CheckSchemaVersion'。 <BR>说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 <BR><BR>异常详细信息: System.Data.SqlClient.SqlException: 找不到存储过程 'dbo.aspnet_CheckSchemaVersion'。<BR><BR>可能是第一次运行时会创建一个数据库,但我不要它创建数据库,用我自己的数据库。所以是不是应该有一个初始化的方法或者构造函数什么的要重写?<BR>我参照codeproject.com上MySqlMemberShipProvider试着写了代码,但是没有头绪,还是出错。<BR>想问问大家,到底要怎么才能自己写membership and role providers来用上Login控件组?<BR>大家实际中的应用,登陆,注册都是自己另外写的控件吗?<BR><BR>
问题补充: 怎么就一个人回答呢,大家帮帮忙....
奇军的主页 奇军 | 菜鸟二级 | 园豆:265
提问于:2008-05-24 22:06
< >
分享
最佳答案
0
很简单的 因为你继承了SqlMembershipProvider 而SqlMembershipProvider 又是链接SQL的 提示那个是SqlMembershipProvider里使用的过程 建议继承MembershipProvider 来做比较好,如果要用SqlMembershipProvider,你给重写qlMembershipProvider的自检
G yc {Son of VB.NET} | 老鸟四级 |园豆:2006 | 2008-05-25 13:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册