Membership.ValidateUser很慢
我正在使用System.Web.Sercurity.Membership
方法来处理我们的Web服务的用户。 我在测试期间非常满意,因为我们的数据库和Web服务驻留在同一台服务器上。
当数据库和Web服务移动到单独的服务器时,当我们使用Membership.ValidateUser(username, password)
命令对用户进行身份validation时,我们会遇到大量延迟。
配置文件详细信息:
type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=*********" connectionStringName="BlaBlaConnection" enablePasswordRetrieval="false" enablePasswordReset="true" RequiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"
问题与数据库框上的权限有关这篇文章帮助: https : //elgg.leeds.ac.uk/webteam/weblog/15385.html
我们的数据库人员将App Pool Identity和Domain机器标识添加到数据库框和.NET根目录,授予读/写访问权限。
重新映像服务器时,这些目录的UNC路径不在C:驱动器上,因此它们不会inheritance“正常”ACL权限
当这个被纠正时,时间会逐渐减少, 但它仍然有点慢我想要的(对于Membership.ValidateUser(username, password);
平均约4秒Membership.ValidateUser(username, password);
和Roles.IsUserInRole(username, item.Role)
;有负载每小时10,000个)