C# 关于MembershipDataContext命名空间/引用

C# 关于MembershipDataContext命名空间/引用,c#,asp.net,asp.net-membership,C#,Asp.net,Asp.net Membership,我正在使用处的代码在我的web表单代码中更改aspnet_user表中的用户名。 但它不工作,因为找不到MembershipDataContext命名空间。 谷歌搜索,但没有结果 谢谢 更新: public bool ChangeUserName(Guid userId, string newUserName) { bool success = false; newUserName = newUserName.Trim(); // Make sure there is

我正在使用处的代码在我的web表单代码中更改aspnet_user表中的用户名。 但它不工作,因为找不到MembershipDataContext命名空间。 谷歌搜索,但没有结果

谢谢

更新:

public bool ChangeUserName(Guid userId, string newUserName)
{
    bool success = false;
    newUserName = newUserName.Trim();

    // Make sure there is no user with the new username
    if (Membership.GetUser(newUserName) == null)
    {
        MembershipUser u = Membership.GetUser(userId);
        string oldUsername = u.UserName;
        // get current application

        MembershipDataContext context = new MembershipDataContext ();
        aspnet_User userToChange = (from user in context.aspnet_Users
                                    where user.UserId == userId
                                    select user).FirstOrDefault();

        if (userToChange != null)
        {
            userToChange.UserName = newUserName;
            userToChange.LoweredUserName = newUserName.ToLower();

            context.SubmitChanges();

            // ASP.NET Issues a cookie with the user name. 
            // When a request is made with the specified cookie, 
            // ASP.NET creates a row in aspnet_users table.
            // To prevent this sign out the user and then sign it in

            string cookieName = FormsAuthentication.FormsCookieName;
            HttpCookie authCookie = 
              HttpContext.Current.Request.Cookies[cookieName];

            FormsAuthenticationTicket authTicket = null;

            try
            {
                authTicket = 
                    FormsAuthentication.Decrypt(authCookie.Value);

                FormsIdentity formsIdentity = 
                    new FormsIdentity(
                        new FormsAuthenticationTicket(
                            authTicket.Version, 
                            newUserName, 
                            authTicket.IssueDate, 
                            authTicket.Expiration, 
                            authTicket.IsPersistent, 
                            authTicket.UserData));

                string y = HttpContext.Current.User.Identity.Name;
                string[] roles = 
                    authTicket.UserData.Split(new char[] { '|' });
                System.Security.Principal.GenericPrincipal genericPrincipal = 
                    new System.Security.Principal.GenericPrincipal(
                                                        formsIdentity, 
                                                        roles);

                HttpContext.Current.User = genericPrincipal;
            }
            catch (ArgumentException ex)
            {
                // Handle exceptions
            }
            catch( NullReferenceException ex)
            {
                // Handle exceptions
            }

            FormsAuthentication.SignOut();
            HttpContext.Current.Session.Abandon();
            FormsAuthentication.SetAuthCookie(newUserName, false);
            success = true;
        }
    }

    return success;
}

数据上下文通常指linq。你在用Linq吗?如果是这样,
DataContext
是最重要的,因为
成员
部分是从DBML文件中自定义生成的类


我希望这会有所帮助。

您提到的问题中的代码定义了一个名为
MembershipDataContext的Linq到SQL实体数据上下文(这使它成为的定义)。没有名为
MembershipDataContext
的内置类型(我知道或可以找到)


一个做同样事情的项目(包括dbml定义)

我使用:使用System.Data.Linq;使用System.Linq;右键单击
MembershipDataContext
,箭头指向“Resolve”,它不显示reslove,这意味着引用错误。我在MSDN中根本找不到它。它最初是如何到达那里的?这段代码是从哪里来的?