ASP.NET身份验证 - 多应用程序和多用户数据库

时间:2010-10-29 16:24:00

标签: asp.net asp.net-membership forms-authentication membership-provider

我们有一个使用ASP.NET SqlMembershipProvider的简单ASP.NET应用程序,一切都很棒。

我们想在同一台服务器上创建第二个应用程序,也使用SqlMembershipProvider,但使用不同的“applicationName”,以便两个应用程序之间的用户帐户保持独立。

看起来这可能是通过制作两个不同的应用程序域(即它们各自都有自己的web.config),但我希望将它们放在不同的目录中,所以我没有3个web。所有必须保持同步的配置(每个app一个,主要一个)。所以我要追求的是:

/web.config
/APP1 (uses membership provider in /web.config, with userlist A)
/APP2 (uses membership provider in /web.config, with userlist B)

定义使用不同“applicationName”值的多个成员资格提供程序看起来很简单。

但是如何告诉system.web.authentication节点使用哪个成员资格提供程序?

据我所知,它将始终使用默认值。

2 个答案:

答案 0 :(得分:1)

如果我正确阅读你的场景,听起来两个应用程序之间的唯一区别就是“ApplicationName”属性。

因此,如果您在两个应用程序中的每个应用程序的Application_Start(在Global.asax中)中设置它,那么您应该是金色的。

protected void Application_Start(object sender, EventArgs e)
{
    Membership.Provider.ApplicationName = "test";
}

答案 1 :(得分:0)

使用您的结构我认为您必须围绕成员资格提供程序实现自己的包装器,有效地创建您自己的提供程序,只提取请求并根据apps目录修改appname值。