Kha*_*man 20 asp.net asp.net-membership
我有一个使用ASP.net会员提供商的asp.net网站.用户ID跟踪DB中的每个注释,条目等.
由于MS没有提供更改用户名的方法,因此我在数据库的"users"表中找到了userNAME,并且只有一个用户名出现的位置.
我的问题是,
提供"编辑个人资料"页面是否安全,允许用户编辑自己的用户名.当然,我会通过直接更改数据库中的"用户名"值来在后台处理此更改.
这有什么缺点吗?我已经创建并修改了一些测试帐户,看起来很好,我只是想知道在投入生产之前是否存在任何已知的负面影响.
And*_*son 14
cptScarlet的链接很好,但是如果我不需要,我会鄙视使用存储过程,并且我尽可能地支持实体框架.以下是我使用EF 4.0和.NET 4.0更改用户名所做的操作:
现在您可以添加代码来创建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();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:我没有在我的代码中考虑应用程序ID.我通常只有一个使用ASP.NET成员资格数据库的应用程序,所以如果你有多个应用程序,你需要考虑到这一点.
| 归档时间: |
|
| 查看次数: |
19424 次 |
| 最近记录: |