当客户访问我的网站时,会传递一个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,它可以通过编程方式完成吗?
感谢您的帮助!
答案 0 :(得分: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>