ASP.NET用户名更改

前端之家收集整理的这篇文章主要介绍了ASP.NET用户名更改前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个asp.net网站使用ASP.net会员提供商。 DB中的每个注释,条目等都由用户ID跟踪。 @H_502_2@由于MS没有提供更改用户名方法,所以我在DB中的“users”表中找到了userNAME,只有一个用户名出现的位置。

@H_502_2@我的问题是

@H_502_2@提供“编辑个人资料”页面是安全的,用户可以在其中编辑自己的用户名。当然,我将通过直接更改数据库中的“用户名”值在后台处理此更改。

@H_502_2@这有什么缺点吗?我创建和修改了一些测试帐户,似乎很好,我只是想知道在投入生产之前是否有任何已知的负面影响。

解决方法

cptScarlet的链接很好,但是如果我不必要,我鄙视使用存储过程,并且尽可能地赞成Entity Framework。以下是使用EF 4.0和.NET 4.0更改用户名的操作: @H_502_2@>右键单击项目 – >添加新项目 – > ADO.NET实体数据模型
给它一个正确的名称,我选择了“MembershipModel.edmx”,然后单击添加
>选择从数据库生成,然后单击下一步
>将连接添加到“aspnetdb”数据库(ASP.NET成员数据库)
给它一个正确的名字,我选择了“MembershipEntities”
>点击下一步
>钻入表格并选择aspnet_Users
>将模型命名空间更改为MembershipModel
>单击完成

@H_502_2@现在您可以添加代码来创建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();
            }
        }
    }
}
@H_502_2@注意:我的代码中没有列出应用程序ID。我通常只有一个应用程序使用ASP.NET成员资格数据库,所以如果你有多个应用程序,你需要考虑到这一点。

原文链接:https://www.f2er.com/aspnet/252990.html

猜你在找的asp.Net相关文章