旧问题了:使用网上的办法没解决...
环境 VS2012/ASP.NET MVC3/.NET FRAMEWORK4 FORM验证 UPLOADIFY 版本3.2-1
发票据方法
System.Web.Security.FormsAuthentication.SetAuthCookie(name)
页面cookie有两个 .ASPXAUTH ASP.NET_SessionId
文件上传处理路径
[Authorize]
public void upload(){}
因为falsh上传文件时没带这两COOKIE,所以请求被拒,按网上做法,我在请求事件开始方法里手动设置了这两个COOKIE(COOKIE的值是写在uploadify的上传脚本里发过来的,没问题),将它加到HttpContext.Current.Request.Cookies.Add(cook).但是:依然无法通过验证, HttpContext.Current.User这个为null.
不明白为什么我这样做就不行?
我的是MVC4,Uploadify v3.2.1,没有使用Form验证,我使用的Filter验证的,测试下了,是可以上传的。使用Fiddler查看上传数据,头部Cookie: __RequestVerificationToken=wjNrnAzVFKri32vK-uGXLiO9SAajEc_9Q6vdjUG0EqSDL9AJL32Hzjken8EHxhhjQENvrVq6mYInMzYZyY0vLCEpKqBqAQpTvpzCAdFrgyY1; ASP.NET_SessionId=ytrih4woz2hrddimywbuqkyl
没使用过这种验证.但我发现这两个Cookie和Form的看起来一样..在上传时,你也是将Cookie通过表单发到Server了吗?
@mirrortom: 你要用Fiddler来监视浏览器,这个值就是我上传文件时的头文件。
@mirrortom: 我看了下我的Upload代码,没有手动加这两个值。
@happydaily:
不解了.这个上传插件在上传时去掉了Cookie,但你却可以访问到.我这边调试时,两个Cookie都是空的.证明它确实没上传过来.
哦.在IE下是没这问题的,它强制上传了Cookie.火狐就没传.所以验证通不过..
可能我们用的验证方式不一样,但是为何你能检测到Cookie.
@mirrortom: 试下了,IE、Chrome正常,火狐的确有问题,头部是没有这个Cookie,你在Upload中手动加上这个Cookie上传试试?