如何使用 aspnetdb 以外的数据库配置成员附带



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

Could not find stored procedure 'dbo.aspnet_CheckSchemaVersion'

如何使用这个。有没有分步程序!!如果是这样,请提供。除了 web.config 文件中的连接字符串之外,还有什么要更改的吗?

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

  • http://msdn.microsoft.com/en-us/library/f1kyba5e(v=vs.100).aspx
  • http://www.asp.net/web-forms/videos/how-do-i/how-do-i-create-a-custom-membership-provider

验证的主要方法将是 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

最新更新