C# 当客户访问网站时,我可以更改applicationName吗?

C# 当客户访问网站时,我可以更改applicationName吗?,c#,sql-server,membership-provider,C#,Sql Server,Membership Provider,当客户访问我的站点时,会传入一个guid,告诉我他们可以登录哪个公司 我希望每个公司都有自己的一套基于应用程序的登录 我希望根据传入的guid为每个公司制作一个应用程序 在访问AspNetSqlMembershipProvider之前,是否可以更改applicationName,以便将用户绑定到该应用程序 <membership> <providers> <clear/> <add name="AspNetSqlMembershipP

当客户访问我的站点时,会传入一个guid,告诉我他们可以登录哪个公司

我希望每个公司都有自己的一套基于应用程序的登录

我希望根据传入的guid为每个公司制作一个应用程序

在访问AspNetSqlMembershipProvider之前,是否可以更改applicationName,以便将用户绑定到该应用程序

<membership>
  <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider"
         type="System.Web.Security.SqlMembershipProvider"
         connectionStringName="ApplicationServices"
         enablePasswordRetrieval="false"
         enablePasswordReset="true"
         requiresQuestionAndAnswer="true"
         requiresUniqueEmail="true"
         maxInvalidPasswordAttempts="3"
         minRequiredPasswordLength="6"
         minRequiredNonalphanumericCharacters="0"
         passwordAttemptWindow="10"
         applicationName="webportal"/>
  </providers>
</membership>

我无法在配置中从代码更改它,因为这会影响其他用户。。。那么,一旦我得到它们的guid,它能以编程方式完成吗


谢谢你的帮助

您不能动态编辑web.config文件的内容。您可以在web.config中放置几个不同的提供程序,即使唯一的区别是应用程序名。然后动态选择所需的提供程序,如下所示:

Membership.Providers["MyOtherProvider"].ValidateUser(username, pwd);
然后在web.config中

<membership>
  <providers>
    <clear/>
    <add name="AspNetSqlMembershipProvider"
         type="System.Web.Security.SqlMembershipProvider"
         connectionStringName="ApplicationServices"
         enablePasswordRetrieval="false"
         enablePasswordReset="true"
         requiresQuestionAndAnswer="true"
         requiresUniqueEmail="true"
         maxInvalidPasswordAttempts="3"
         minRequiredPasswordLength="6"
         minRequiredNonalphanumericCharacters="0"
         passwordAttemptWindow="10"
         applicationName="webportal"/>

  <add name="MyOtherProvider" ...
   ...
  />
  </providers>
</membership>

Pefect!非常感谢你!