• 如何利用 MembershipUser 更改密码


    如何利用

     MembershipUser 

    更改密码

     

    作者:

    vkvi 

    来源:千一网络

    (原创)

     

    时间:

    2009-3-11  

     

    完美集成、增强

     KindEditor HTML 

    编辑器

     

     ASP.NET 

    自带的成员资格中对改用户密码一事搞得很复杂。

    MembershipUser 

    有个

    方法叫

     ChangePassword 

    可以改密码,但要求先输入原密码。如果用户已经忘记了原密码,

    叫管理员重新设置一个密码,该方法就办不到了。

     

    不输入原密码重设密码的方法有二:

     

    方法一

     

    首先在配置文件中将

     enablePasswordReset 

    设置为

     true

    requiresQuestionAndAnswer 

    设置为

     false

    也就是说允许密码重置,

    禁止用问题和答案找

    回密码。关于如何设置,

    请参见:

    ASP.NET 

    成员资格-配置

     Membership 

    中为被锁定用

    户重设密码

     

    然后是代码:

     

    MembershipUser user = Membership.GetUser("

    用户名

    "); 

    string password = user.ResetPassword(); //

    重置一个随机密码

     

    user.ChangePassword(password, "

    新密码

    "); //

    用指定的密码设置

     

    方法二

     

    这种方法就不用禁用问题和答案了,但它不能想设成哪个密码就设成哪个密码,它的

    原理是:将数据库中已知的密码的加密字符串更新到要修改密码的用户中。步骤是:

     

     

    已经丢失密码的用户名叫

     cftea

    ,另外一用户的用户名是

     admin

    ,密码是

     1234567

    我们可以在表

     aspnet_Users 

    中通过用户名找到

     cftea 

     admin 

     UserId

     

     

     

    然后再到表

     aspnet_Membership 

    中通过

     UserId 

    找到

     Password 

     PasswordSalt 

    的值。

     

     

     admin 

    那个用户对应的

     Password 

     PasswordSalt 

     

    值更新到

     cftea 

    对应的字

    段。

     

     

    此时

     cftea 

    的密码就和

     admin 

    一样了。

     

    如果我们有多个应用程序在使用同一个库,

    那么应该先到

     aspnet_Applications 

    中找

    到相应的应用程序的

     ApplicationId

    ,然后在

     aspnet_Users 

    中查找

     UserId 

    时应该把

     

    ApplicationId 

    也作为

     where 

    条件加进去。

  • 相关阅读:
    记录犯得最可笑的错误
    爬虫阶段内容总结
    docker_nginx_Elasticsearch
    git基础
    爬虫pearPro
    爬虫wangyiPro
    sunPro
    docker-compose终极搞定个人博客
    小程序下拉三个小点不显示问题
    vue鼠标拖动
  • 原文地址:https://www.cnblogs.com/TNSSTAR/p/3987928.html
Copyright © 2020-2023  润新知