我有一个使用内置成员资格功能的 ASP.NET 应用程序。因此,我的 web.config 中有一个连接字符串,如下所示:
<add name="MembershipSqlServer" connectionString="Data Source=servername;Database=aspnetdb;uid=user;pwd=password;" />
在我的开发机器上工作时,一切都非常顺利。但是,当我将内容移至 Web 服务器(也恰好运行 SQL Server)时,在调用 User.IsInRole() 时出现此错误:
System.Data.SqlClient.SqlException:用户“NT AUTHORITY\NETWORK SERVICE”登录失败。
F$%*&!!为什么它尝试以这种方式连接?为什么它不使用连接字符串中的用户/密码? Web.config 在开发和服务器上是相同的,我在开发过程中使用服务器上的数据库。
最佳答案
好吧,我明白了...只有 35 分钟。 :P
长话短说:asp.net 成员(member)资格有两个部分......成员(member)资格提供者和 ROLE 提供者。为什么你想要将这两件事分开,我不知道......但我的 web.config 没有指定 角色 提供程序和连接字符串,因此它默认为计算机中的设置。配置(又名 LocalSqlServer 连接字符串)。
所以一直以来,我的应用程序用户都在服务器上...但角色存储在 App_Data 中的本地 .MDF 文件中。呃。
关于asp.net - 为什么 ASP.NET 忽略我的成员(member)连接字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2293589/