asp.net-mvc-3 – 在IIS上运行时,ASP.NET Web应用程序中的模拟不
我正在研究在Intranet环境中工作的ASP.NET 4.0 MVC3 Web应用程序.该应用程序使用Windows身份验证.其应用程序池由在域控制器上设置了spn的域用户运行.身份验证使用Kerberos(在一些其他配置后在IE和Firefox上).
现在我想将文件上传到sharepoint,但是对我来说,以用户当前登录到应用程序的方式上传文件非常重要(因此文件是在Sharepoint上用他/她的凭据创建的). 我在ResourceExists(Uri uri)函数中有以下代码: '... Dim identity As System.Security.Principal.WindowsIdentity = HttpContext.User.Identity Dim impersonationContext = identity.Impersonate() response = request.GetResponse() impersonationContext.Undo() '... 这在本地运行时有效,但是当我部署到服务器时,我得到异常: System.Net.WebException: The remote server returned an error: (401) Unauthorized.rn at WebDav.WebDavClient.ResourceExists(Uri uri)rn at Website.Website.WebdavController.Upload(HttpPostedFileBase file,UploadViewModel vm) 我读了一些关于传递凭据的内容,这是NTLM无法实现的,但我确信我使用的是Kerberos(我使用wireshark和fiddler检查了标头),我看到以下内容: Authorization: Negotiate YIIFpQYGKwYBBQUCoIIFmTCCBZWgJDAiBgkqhkiC9x... 在IIS服务器上运行时模拟为什么不起作用的任何想法? 解决方法
我在这里找到了答案:
http://support.microsoft.com/kb/810572 “Kerberos在负载均衡的体系结构中不起作用,IIS会回退到NTLM身份验证.由于您无法使用NTLM进行委派,因此任何需要委派的应用程序或服务都不起作用.有关更多信息,请单击下面的文章编号,以查看微软的文章“ 情况确实如此.我现在尝试使用另一台没有负载平衡的机器,它可以工作. 唯一令我惊讶的是,身份的ImpersonationLevel仍然是Impersonate而不是Delegate …… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 帮助页面ASP.NET vNext MVC 6 Web Api
- asp.net中js+jquery添加下拉框值和后台获取示例
- asp.net – “’Microsoft.Jet.OLEDB.4.0’提供程序未在本地
- asp.net-mvc-3 – 如何添加整数列表到路由
- asp.net-mvc – 获取表单域的生成clientid
- 如何使用Team Build部署ASP.NET Web应用程序?
- asp.net – 如何在运行时动态地在另一个ASPX的DIV中显示ASP
- asp.net-mvc – 如何将环境变量放在web.config中?
- 在Entity Framework中使用存储过程(三):逻辑删除的实现与
- ASP.Net MVC:你可以在AJAX / jQuery调用中使用数据注释/验
- asp.net-mvc – 最新的ASP.Net MVC 3请求处理管道
- asp.net-mvc – 使用RowAction更改Kendo MVC网格
- asp.net-mvc-3 – 当HTTP响应状态设置为400时,II
- asp.net-mvc-3 – KnockoutJs Observable Arrays
- asp.net – 更改User-Agent标头触发表单身份验证
- 在asp.net identity 2.0中获取分配角色的用户列表
- asp.net-mvc – ASP.NET MVC Scheduler开源?
- 最好的asp.net日历/日程安排组件?
- 单元在ASP.NET中测试登录
- 优化 – 在经典ASP内存泄漏中实现对象缓存