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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。