【发布时间】:2016-12-23 09:54:17
【问题描述】:
我有一个在 IIS 内的 Windows Server 上运行的 Web 应用程序。此应用正在使用 Windows 身份验证。我正在尝试使用 C#SqlConnection,因为我需要使用 TVP 调用存储过程,但我遇到了登录问题。
错误是
用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败
但我的 HttpContext.Current.Identity 是我的 Windows 帐户。
using (var conn = new SqlConnection(connection))
{
conn.Open();
}
如果我使用实体框架,这将有效:
using (var context = new DatabaseEntities())
{
...
}
我很好奇为什么在标准 c#SqlConnection 中,它不使用 Windows 标识,但在实体框架连接中,它使用了。有什么帮助吗?
【问题讨论】:
-
“标准 c# sql 连接”是什么意思?相对于什么?您已经展示了两段相同的代码。你是说一个有效,另一个无效?
connection变量的内容是什么? (用虚拟数据替换所有地址、用户名和密码,但保留所有部分)。 -
顺便说一句,您知道您可以使用实体调用/调用存储过程,对吧?我很好奇为什么你通常使用 EF,但是对于这个 sproc 调用,你显然不想?
-
我已经更新了我的 OP。只有在不同的服务器上运行时才会失败,所以我无法为您提供连接信息。我没有使用实体框架,因为 EF 不支持表值参数作为 SP 的参数。
-
连接字符串是什么
-
标签: c# asp.net entity-framework