0

我需要使用在远程客户端上运行的 Windows 应用程序,它将连接到 Web 服务。Web 服务将访问 SQL 数据库以验证用户和角色,并执行其他任务。我正在使用 ASP.NET Membership 来管理用户和角色。我有 ASP.NET 成员资格,并且 Web 服务在开发机器上工作。我有一个带有服务引用的 Windows 客户端,当我访问不访问数据库的方法时,它可以工作,但是当我尝试访问访问数据库方法的服务方法时,我得到了用户与受信任的 SQL Server 连接没有关联。根据我尝试解决的问题,我会收到各种权限错误,但这是要点。我不希望 Windows 客户端需要数据库权限。我希望它向 Web 服务发送用户名和密码,然后 Web 服务包装Membership.ValidateUser(userName, password)

有人可以告诉我如何设置吗?

4

2 回答 2

1

您应该考虑将 SQL Server 设置为使用 SQL 和 Windows 身份验证(混合模式)。它很可能仅在 Windows 身份验证模式下运行。您可以查看链接以开始使用。

听起来,按照您设计的方式,您必须为每个用户设置一个帐户。根据我的经验,最好只创建一个具有必要权限的特定 SQL 帐户,并让每个客户都使用该帐户。您可以在连接字符串中指定它。

于 2012-06-04T19:39:45.320 回答
0

假设您在 SQL 中启用了命名管道身份验证,您的 ASP.NET 应用程序中的 SQL 连接字符串可以配置为使用集成安全性 ( Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;)。然后在 SSMS 中,将适当的 ASP.NET 用户权限授予数据库。IIS 使用的用户取决于您运行的 IIS 版本,并且可以在相关服务器的应用程序池配置中看到。

于 2012-06-04T19:45:55.597 回答