b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

aspnet membership defult_asp.net权限membership_.net owin和membe

电脑杂谈  发布时间:2017-06-09 10:06:03  来源:网络整理

Date: Wednesday, June 13, 2007

asp.net 2.0 中引入的Membership 机制给我们做web 开发带来很多便利,使得我们在做很多项目开发时处理用户和角色及权限问题时减少了相当的工作量。不过我们开发中可能会碰到一个小小的问题如下:

我们知道MembershipUser 中有如下重载的方法

MembershipUser.ResetPassword () :将用户密码重置为一个自动生成的新密码。

MembershipUser.ResetPassword (String passwordAnswer) :将用户密码重置为一个自动生成的新密码。

msdn 中有如下描述:

ResetPassword 调用ProviderName 属性所引用的成员资提供程序的MembershipProvider.ResetPassword 方法,以将成员资用户的密码重置为自动生成的新密码。然后将该新密码返回到调用方。

如果EnablePasswordReset 为false ,则成员资提供程序将返回一个异常。aspnet membership defultaspnet membership defult

如果RequiresQuestionAndAnswer 为true ,则必须使用以密码提示问题答案作为参数的ResetPassword 重载方法,并提供成员资用户的密码。如果需要密码答案并提供了不正确的密码答案,成员资提供程序将引发MembershipPasswordException 。

而另外一个方法MembershipUser.ChangePassword(String oldPassword, String newPassword) 又必须提供原始密码,那么这里就产生了一个矛盾:我们希望用户能够通过安全问题和答案来作为找回密码,又希望管理员可以重置某用户的密码怎么办?上述方法均无法直接使用,要么使用MembershipUser.ResetPassword () 而无安全问题和答案验证,要么必须知道问题答案或者原始密码,我们知道这些安全相关的东西我们都是加密的,而且往往采用单向编码的方式,也是说我们不可能轻易的通过读取数据知道用户的答案和旧密码!那么好,如何解决这个问题呢?下面我来提供一个小的解决方案:

Membership 的中包含有一个设置用户密码的存储过程:

返回:成功返回 0 ;

用户不存在,返回 1 ;

那么ok, 我们开始解决我们的需求吧!思路很简单我们先设置用户一个默认的密码,然后以该密码为旧密码使用MembershipUser.ChangePassword(String oldPassword, String newPassword) 修改用户的密码。下面的代码是在以DataAccess.RunProcedure 方法是已经实现的执行存储过程的方法为前提编写的:

注: 以上代码仅做参考,不一定是符合您具体项目的需求,比如有人可能会继续问修改了密码怎么告诉用户啊,答案是发邮件或者电话通知啊,哈哈~~


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-51964-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...