如何使用aspnetdb以外的数据库配置成员发送

时间:2013-01-30 12:58:07

标签: asp.net sql-server-2008 asp.net-membership

我创建了一个数据库和表来存储用户登录值和凭据。 asp.net提供aspnet_regsql工具来为会员相关活动创建数据库。但我不想用它。这就是我创建另一个数据库的原因。现在我想将这个数据库连接到我的项目。我将web.config文件中的connectionstring参数更改为我新创建的数据库。但是我无法登录。它提供以下错误消息。

Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'

如何使用此功能。有没有一步一步的程序有!!如果是的话请提供。 是否有任何改变而不是web.config文件中的连接字符串?

1 个答案:

答案 0 :(得分:2)

您需要创建成员资格提供程序以连接到自定义表以进行身份​​验证。 MSDN有一些关于这个主题的文档。您还可以在ASP.NET上查看有关该主题的视频。这是链接。

验证的主要方法是ValidateUser方法,您将覆盖此方法以提供身份验证。

public sealed class CustomMembershipProvider : MembershipProvider
{
    // implement other methods

    public override bool ValidateUser(string username, string password)
    {
        try
        {
            var user = // GET USER OBJECT HERE
            if (user != null)
            {
                string name =  // set username

                // Set your forms authentication ticket
                FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, user.ID.ToString(), DateTime.Now, DateTime.Now.AddMinutes(30), false, name, FormsAuthentication.FormsCookiePath);

                HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(ticket));
                HttpContext.Current.Response.Cookies.Add(authCookie); 
                return true;                    
            }
        }
        catch
        {
        }

        return false;
    }

    // Other implementations
}

如果您在应用程序中有角色,则可能还需要实现自定义角色提供程序:

http://msdn.microsoft.com/en-us/library/8fw7xh74(v=vs.100).aspx