我需要使用在连接到Web服务的远程客户端上运行的Windows应用程序。 Web服务将访问SQL数据库以验证用户和角色,并执行其他任务。我使用ASP.NET Membership来管理用户和角色。我有ASP.NET成员资格,以及在开发机器上工作的Web服务。我有一个带有服务引用的Windows客户端,当我访问不访问数据库的方法时,它工作,但是当我尝试访问访问数据库方法的服务方法时,我得到用户没有与受信任的SQL相关联服务器连接。我会收到各种权限错误,具体取决于我尝试解决此问题,但这是要点。我不希望Windows客户端需要数据库权限。我希望它向Web服务发送用户名和密码,然后Web服务包装 Membership.ValidateUser(userName,password)
有人可以告诉我如何设置吗?
答案 0 :(得分:1)
您应该考虑将SQL Server设置为使用SQL和Windows身份验证(混合模式)。它最有可能仅在Windows身份验证模式下运行。您可以查看this链接以开始使用。
听起来,按照您设计的方式,您必须为每个用户设置一个帐户。根据我的经验,最好只创建具有必要权限的特定SQL帐户,并让每个客户端使用该帐户。您可以在连接字符串中指定它。
答案 1 :(得分:0)
假设您已在SQL中启用了命名管道身份验证,则可以将ASP.NET应用程序中的SQL连接字符串配置为使用集成安全性(Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
)。然后在SSMS中,为数据库提供适当的ASP.NET用户权限。 IIS使用的用户取决于您正在运行的IIS版本,并且可以在相关服务器的应用程序池配置中看到。