是否可以使用 .NET MembershipProvider 来拥有多个虚拟“应用程序”? 在一个网络应用程序上?
我想从头开始构建类似门户的 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 表获取所有应用程序(我还有用于在同一个表中插入应用程序的部分)。
如果验证成功,则应用程序名称将保留在成员资格和角色提供程序中,否则它将保留在默认名称上,即为匿名用户预定义的应用程序。
I want to build portal-like asp.net web application from scratch and was looking at asp.net MembershipProvider as a standard way for user's management. I created my provider inheriting from SqlMembershipProvider and override ValidateUser method:
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;
}
I'm trying to validate entered credentials against all applications, while GetAllApplicationsMethod() gets all applications from aspnet_Applications table (I also have part for inserting applications in the same table).
If validation succeed then Application name is leaved on both Membership and Roles providers, otherwise it stays on the default one which is predefined application for anonymous users.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,我曾多次做过类似的事情。 唯一的区别是,我根据用户进入的 URL 在数据库表中查找应用程序名称,并且仅验证该应用程序。 该表有两个字段:URL 和 ApplicationName。 ApplicationName 与 aspnet_Applications.ApplicationName 字段相同。
Yes, I've done somethihng similar on several occasions. The only difference being that I look the application name up in a database table based on the URL the user comes in off of and only validate for that one app. The table has two fields, URL and ApplicationName. The ApplicationName is the same ApplicationName as the aspnet_Applications.ApplicationName field.