是否可以使用.NET MembershipProvider在一个Web应用程序上拥有多个虚拟“应用程序”?

时间:2008-12-30 10:30:24

标签: asp.net membership-provider portal-system

我想从头开始构建类似门户网站的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表中获取所有应用程序(我也有一部分用于在同一个表中插入应用程序)。

如果验证成功,则应用程序名称将在Membership和Roles提供程序上保留,否则它将保留在默认的匿名用户的预定义应用程序上。

1 个答案:

答案 0 :(得分:1)

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