看调用堆栈,是你的页面中向另一个网站提交了请求,然后返回了 401,那么应该是你的网站传递给另一个网站的凭据无效所致,被调用的那个网站采用的什么身份认证方式?
匿名,和form身份验证
@凡尘俊: 看这条语句: EViewService.Login ,这里提供的用户名和密码是你要调用的网站上有的用户吗?
@Launcher:这是程序里的用户,和网站用户有关系吗,我不太懂网站用户
@凡尘俊: 我想问你一句,你知道这个 401 错误是指示的登录哪个网站失败吗?
@Launcher: 知道啊,我程序的登录页面能进去,当输完用户名和密码点登陆时就进去了这个页面
@凡尘俊: 我假设你有两个网站:A 和 B,当你访问 A 的某个页面时调用了 EViewService.Login ,EViewService.Login 向网站 B 发送用户名和密码,请问,“当输完用户名和密码点登陆时就进去了这个页面”中的“这个页面”是网站 B 的吗?
@Launcher: 就一个网站啊
@凡尘俊: 那么请问 EViewService.Login 这句代码是将请求提交到了哪个 URL ?
@Launcher: 是与login同目录下的一个Default页面
@凡尘俊: 把你的 Web.Config 贴出来。
@Launcher: 是这个吗
@凡尘俊: 你看你贴的那个调用堆栈,注意这一行:
EViewClient.Post(String uriTemplate,...)
我想知道这里的 uriTemplate 的值是多少?
@Launcher: 我找了config文件没有这个节点的设置
@凡尘俊: 你把这个方法:EViewService.Login 的源码贴出来。
@Launcher: 这是部署好的项目,没有源码啊
@凡尘俊: 反编译下就出来了。
@Launcher: 怎么反编译,是不是还得工具啊
@凡尘俊: ILSpy
把你项目的文件夹目录的everyone读写权限开一下试试呢?
可能是文件夹目录权限导致的。
是不是这个?
@凡尘俊: 编辑里面有个添加,然后里面打到everyone,然后把权限勾上。试下
@Alex_QY1987: 我填了everyone选择了完全控制,但还是有这个问题