我们正在开发一个非常标准的网站,该网站使用WCF服务从数据库中检索数据。
网站(ASP.Net MVC)具有对WCF服务的服务引用 WCF服务可以访问数据库
我们需要在网站上启用基本身份验证,作为我们要求的一部分。
当我们在网站上启用它并在WCF服务上禁用它时,该站点会要求提供凭据,但SQL Server会抛出一条错误,指出用户“NT AUTHORITY \ IUSR”的登录失败。
如果我们在站点和服务上启用它,当我们在创建服务的“Client”实例后尝试执行查询时,它会抛出一个异常,说“未提供用户名。请在ClientCredentials中指定用户名。 ”
我知道我可以将服务配置为以可访问数据库的特定用户身份运行,或者在创建服务客户端时使用“硬代码”运行凭据,但是某些存储过程中的逻辑(即我们不要控制)依赖于知道谁在执行查询。
在这种情况下,最好的方法是什么?有没有办法自动将用于登录站点的凭据传递给WCF服务?
非常感谢!
答案 0 :(得分:0)
我认为它基本上取决于您正在使用的托管类型。