1

我想从头开始构建类似门户的 asp.net Web 应用程序,并将 asp.net MembershipProvider 视为用户管理的标准方式。我创建了从 SqlMembershipProvider 继承的提供程序并覆盖了 ValidateUser 方法:

        public override bool ValidateUser(string username, string password)
        {
            string temp = ApplicationName;
            List<MtscApp> allApps = GetAllApplications();
            foreach (MtscApp app in allApps)
            {
                ApplicationName = app.Name;
                Roles.ApplicationName = app.Name;
                if (base.ValidateUser(username, password))
                {
                    return true;
                }
            }
            ApplicationName = temp;
            Roles.ApplicationName = temp;
            return false;
        }

我正在尝试针对所有应用程序验证输入的凭据,而 GetAllApplicationsMethod() 从 aspnet_Applications 表中获取所有应用程序(我也有在同一个表中插入应用程序的部分)。

如果验证成功,则应用程序名称保留在成员资格和角色提供程序上,否则将保留默认名称,即为匿名用户预定义的应用程序。

4

1 回答 1

1

是的,我曾多次做过类似的事情。唯一的区别是我根据用户进入的 URL 在数据库表中查找应用程序名称,并且只验证那个应用程序。该表有两个字段,URL 和 ApplicationName。ApplicationName 与 aspnet_Applications.ApplicationName 字段的 ApplicationName 相同。

于 2008-12-30T20:44:27.790 回答