当客户访问我的网站时,会传递一个 guid,告诉我他们可以登录哪家公司。
我希望每个公司都有自己的一组基于应用程序的登录名。
我希望根据正在传递的这个指导为每个公司提出申请。
在访问 AspNetSqlMemberProvider 之前,是否可以更改应用程序名称,以便将用户绑定到该应用程序?
<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>
我无法从代码在配置中更改它,因为这会影响其他用户......那么,一旦我获得他们的指导,它可以通过编程方式完成吗?
感谢您的帮助!
您无法
动态编辑 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>