改变ASP.NET用户名

 2023-02-16    337  

问题描述

我有一个使用ASP.NET隶属提供程序的ASP.NET站点.用户ID跟踪DB中的每个注释,条目等.

由于MS没有提供更改用户名的方法,我在DB中找到了”用户”表中的用户名,并且只有1个出现用户名的位置.

改变ASP.NET用户名

我的问题是,

提供”编辑配置文件”页面,提供允许用户编辑自己的用户名的”编辑配置文件”页面.当然,我将通过直接更改DB中的”用户名”值来处理背景中的此更改.

这个缺点是什么?我创建并修改了一些测试账户,似乎很好,我只是想知道在将其投入生产之前是否存在任何已知的否定否定.

推荐答案

cptscarlet的链接很好,但是如果我不必只有在尽可能有利于实体框架,我鄙视使用存储过程.以下是使用EF 4.0和.NET 4.0更改用户名的确实如此:

  1. 右键单击项目 – >添加新项目 – > ADO.NET实体数据模型
  2. 给它一个适当的名称,我选择了”成员身份模型.Edmx”,然后单击添加
  3. 从数据库中选择生成,然后单击下一步
  4. 将连接添加到”ASPNETDB”数据库(ASP.NET隶属数据库)
  5. 给它一个正确的名字,我选择了”会员”
  6. 单击下一步
  7. 进入表格并选择aspnet_users

  8. 将模型命名空间更改为成员身份信息
  9. 单击finish

现在,您可以添加代码以创建EF对象上下文并修改数据库:

public void ChangeUserName(string currentUserName, string newUserName)
{
    using (var context = new MembershipEntities())
    {
        // Get the membership record from the database
        var currentUserNameLowered = currentUserName.ToLower();
        var membershipUser = context.aspnet_Users
            .Where(u => u.LoweredUserName == currentUserNameLowered)
            .FirstOrDefault();

        if (membershipUser != null)
        {
            // Ensure that the new user name is not already being used
            string newUserNameLowered = newUserName.ToLower();
            if (!context.aspnet_Users.Any(u => u.LoweredUserName == newUserNameLowered))
            {
                membershipUser.UserName = newUserName;
                membershipUser.LoweredUserName = newUserNameLowered;
                context.SaveChanges();
            }
        }
    }
}

注意:我没有考虑代码中的应用程序ID.我通常只有一个应用程序使用ASP.NET隶属全资格数据库,因此如果您有多个应用程序,则需要解释该应用程序.

以上所述是小编给大家介绍的改变ASP.NET用户名,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/33871.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。