我想从头开始构建类似门户的 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 表中获取所有应用程序(我也有在同一个表中插入应用程序的部分)。
如果验证成功,则应用程序名称保留在成员资格和角色提供程序上,否则将保留默认名称,即为匿名用户预定义的应用程序。