0

当客户访问我的网站时,会传递一个 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,它可以通过编程方式完成吗?

谢谢您的帮助!

4

1 回答 1

1

您不能动态编辑 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>
于 2013-09-30T18:09:27.613 回答