不支持NTLM身份验证令牌

时间:2013-12-06 17:47:01

标签: c# asp.net-mvc-3 teradata

我正在使用TeraData和ASP.NET MVC3的集成安全性。尝试打开连接时,我收到以下异常。我是否需要做一些事情才能将令牌转换为可接受的东西?

'/'应用程序中的服务器错误。 不支持NTLM身份验证令牌。 ErrorCode:-452984668严重性:错误工具:DotNet 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中的起源位置的更多信息。

异常详细信息:Teradata.Net.Security.TdgssException:不支持NTLM身份验证令牌。 ErrorCode:-452984668严重性:错误工具:DotNet

来源错误:

在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。

堆栈追踪:

[TdgssException:不支持NTLM身份验证令牌。 ErrorCode:-452984668严重性:错误工具:DotNet]    Teradata.Net.Security.Mechanisms.SPNEGOSession.AuthenticateAsClientImplementation(TdgssAuthenticationTokenExchange tokenAuthenticationExchange,String credential,String targetName)+4506    Teradata.Net.Security.Mechanisms.Session.AuthenticateAsClient(TdgssAuthenticationTokenExchange tokenAuthenticationExchange,String credential,String targetName)+159    Teradata.Client.Provider.WpSecurityManager.Action()+ 134

[TdException(0x80004005):[TeraGSS Security Library] [115022] TERAGSS层发生异常。有关详细信息,请参阅内部异常    Teradata.Client.Provider.WpSecurityManager.Action()+268    Teradata.Client.Provider.WpSession.Open(Int32 connectionTimeout,String password)+2258    Teradata.Client.Provider.Connection.Open(UtlConnectionString connectionString,UInt32 timeout)+1028    Teradata.Client.Provider.ConnectionPool.CreateConnection(UInt32超时)+53    Teradata.Client.Provider.ConnectionPool.GetConnectionFromPool(Object owningObject)+820    Teradata.Client.Provider.ConnectionFactory.GetConnection(Object owningObject,UtlConnectionString connStr)+842    Teradata.Client.Provider.TdConnection.Open()+ 172    ProductDevelopmentRequestSystem.Data.AMAPS.MaterialRepository.get_Connection()+389    ProductDevelopmentRequestSystem.Data.AMAPS.MaterialRepository.GetSuffixPlantMapping()+ 107    ProductDevelopmentRequestSystem.Reports.Supply.SupplyDataLogic.GetAmapsPlantMappings()+114    ProductDevelopmentRequestSystem.Reports.Supply.SupplyDataLogic.GetData(SupplyReportData data)+120    ProductDevelopmentRequestSystem.Reports.Supply.SupplyReportLogic.Generate(SupplyReportData data)+115    ProductDevelopmentRequestSystem.Controllers.SupplyAndDemandController.Index(SupplyAndDemandViewModel model)+1836    lambda_method(Closure,ControllerBase,Object [])+127    System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary 2 parameters) +274 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 2个参数)+39    System.Web.Mvc。<> c_ DisplayClass15.b _12()+120    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter过滤器,ActionExecutingContext preContext,Func 1 continuation) +637 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList 1个过滤器,ActionDescriptor actionDescriptor,IDictionary`2参数)+307    System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,String actionName)+720    System.Web.Mvc.Controller.ExecuteCore()+ 162    System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)+305    System.Web.Mvc。<> c_ DisplayClassb.b _5()+62    System.Web.Mvc.Async。<> c_ DisplayClass1.b _0()+15    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+606    System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+288

版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.18055

2 个答案:

答案 0 :(得分:0)

Teradata forums上发布了同样的问题。他们被问到是否正在使用集成身份验证。如果是,则需要提交一个错误,因为这表明Kerberos无法返回NTLM。如果不需要集成身份验证,则需要更新连接字符串。

没有回应。

我认为这意味着它是一个普通的double-hop issue,它可以通过正确实现Kerberos运行或更改连接字符串来使用显式帐户来解决。

答案 1 :(得分:0)

如果您的资源位于与IIS不同的服务器上(或者配置文件认为是,请尝试将名称交换到您尝试访问的资源的IP地址),那么您可能会遇到双跃点问题,而NTLM将会用于进行身份验证,除非您的资源位于为Active Directory委派设置的服务器上。简而言之,NTLM永远不会成功,您需要使用委托,Kerberos将看到http://blogs.msdn.com/b/besidethepoint/archive/2010/05/09/double-hop-authentication-why-ntlm-fails-and-kerberos-works.aspx

相关问题