向大家请教个问题,困扰了我两天了:
我用的是VS 2010,我不想让登陆控件使用默认的数据库,想让登陆控件使用自己建立的数据库,于是我自定义MembershipProviderd类:public class MyMemberShip : MembershipProvider 代码如下:web.config文件配置如下:
但是当我点击登陆按钮后:
却出现如下错误:

解决方案 »

  1.   

    为VaildateUser创建一个单元测试,调用看看是否丢出异常。
      

  2.   

    Error Occurs: 
    Stack Trace: 在 System.Web.Security.Membership.Initialize() 在 System.Web.Security.Membership.get_Provider() 在 System.Web.Security.Membership.ValidateUser(String username, String password) 在 System.Web.Security.AuthenticationService.Login(String userName, String password, Boolean createPersistentCookie)
    Service Error: 调用的目标发生了异常。 (E:\我的程序\vs-1\vs-1\vs-1\web.config line 25)
    Status Code: 500
    Exception Type: System.Configuration.ConfigurationErrorsException
    Is Timeout: false
      

  3.   

    你给的信息不足以判断错误。不过你可以下载这篇文章提供的源代码来研究下:
    http://blogs.law.harvard.edu/brandonhaynes/2008/04/27/using-commerce-servers-upmmembershipprovider-with-dotnetnuke/
      

  4.   

    给你推荐两本书吧 后面跟的是链接
    ASP.NET.3.5揭秘(卷1).pdf: gg.ma/download_4244280.html
    ASP.NET.3.5揭秘(卷2).pdf: gg.ma/download_4243976.html
    你要的内容在第二本的第二章
    里面的介绍很详细
    希望可以以帮助到你
      

  5.   

    你的ConnectionString怎么程序里和配置文件里的名称不一样?
      

  6.   


    你再看看清楚,一个是connectionString,一个是Connstrings
      

  7.   

    哈哈 确实错了,可是我改过来后 还是一样的错误
    但我单独调用 ValidateUser(string username, string password)是没问题的
    protected void Page_Load(object sender, EventArgs e)
            {
                MyMemberShip mss = new MyMemberShip();
                Response.Write(mss.ValidateUser("dafeng","195195").ToString());
            }
    这样ValidateUser能正确显示结果True,但是点击登陆控件的按钮后还是一样的错误
      

  8.   

    终于解决了,原来就是数据库连接字符串的问题啊····
    我建了两个MyMemberShip类,一个是在App_Code中,一个是在Ajax文件夹中,刚才改错文件了,改的是Ajax中的
    感谢各位回帖的朋友,尤其感谢danjiewu(阿丹)