Asp.Net会员每个请求更改应用程序名称

本文关键字:应用程序 请求 Net Asp | 更新日期: 2023-09-27 18:15:37

我们有一个应用程序在一个DB上运行,但有多个指向它的域,并且取决于域确定我们加载哪个css以及显示哪些客户数据。一切都很好,除了我想根据每个客户的请求更改SqlMembership提供程序的应用程序名称,以确保成员资格提供程序中的用户名/电子邮件之间没有冲突。

所以如果域名是abc123.com,我想为那个请求改变ApplicationName。不幸的是,每个应用程序的会员是静态的,所以我的问题是我如何去做这个。理想情况下,我想只是实例化一个SqlMembershipProvider, RoleProvider, ProfileProvider上的基本控制器,我们从什么是在网络上。在请求开始时只配置和更改应用程序名称,而不影响任何其他请求。

如有任何建议,不胜感激。

多谢编辑:

OK,此刻我正在尝试这个,我有一个基本控制器,在onactionexecution的覆盖内,我正在构建一个SqlMembershipProvider,并使用包含我需要的所有属性的NameValueCollection调用Initialize,并根据客户(由url知道)改变ApplicationName。

有人发现有什么问题吗?

编辑:

不,这也不起作用,它仍然试图从网络加载。

Asp.Net会员每个请求更改应用程序名称

ValidateUser在web.config中找不到条目时抛出异常。

您应该能够在根web.config中执行此操作。向定义不同提供者的节点添加applicationname属性。只是要确保每个应用使用不同的名称。

add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="YourAppName" />