Backup/Discuz.Plugin.PasswordMode/ThirdPartMode.cs
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using Discuz.Data;
using Discuz.Entity;
using Discuz.Common;
using Discuz.Plugin;
using Discuz.Forum;
namespace Discuz.Plugin.PasswordMode
{
/// <summary>
/// 第三方认识模式
/// </summary>
public class ThirdPartMode : IPasswordMode
{
/// <summary>
/// 检查密码
/// </summary>
/// <param name="userInfo">通过username获取的用户信息,用于进行密码验证</param>
/// <param name="postpassword">用户提交的密码</param>
/// <returns>返回当前用户信息与提交密码的验证结果</returns>
public bool CheckPassword(UserInfo userInfo, string postpassword)
{
if (userInfo == null)
{
return false;
}
string doubleMd5 = GetEncryptedPassword(userInfo, postpassword);
return doubleMd5 == userInfo.Password;//比较
}
/// <summary>
/// 创建用户信息(用于用户注册等行为)
/// </summary>
/// <param name="userInfo">要创建的用户信息(密码为明文)</param>
/// <returns></returns>
public int CreateUserInfo(UserInfo userInfo)
{
userInfo.Salt = Forum.ForumUtils.CreateAuthStr(6, false);
userInfo.Password = GetEncryptedPassword(userInfo, userInfo.Password);
return Discuz.Data.Users.CreateUser(userInfo);
}
/// <summary>
/// 更新用户信息
/// </summary>
/// <param name="userInfo">要保存的用户信息(密码为明文)</param>
/// <returns>返回经过处理之后的实际用户信息</returns>
public UserInfo SaveUserInfo(UserInfo userInfo)
{
if (Utils.StrIsNullOrEmpty(userInfo.Salt))
userInfo.Salt = Forum.ForumUtils.CreateAuthStr(6, false);
userInfo.Password = GetEncryptedPassword(userInfo, userInfo.Password);
return Discuz.Data.Users.UpdateUser(userInfo) ? userInfo : null;
}
/// <summary>
后面还有 11 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
