加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 获取当前请求的凭据以便在WebRequest中使用

发布时间:2020-12-16 09:14:06 所属栏目:asp.Net 来源:网络整理
导读:访问我的网站时,用户必须输入他的凭据.它们基本上是普通的目录访问凭证. 在某一点上,我通过调用检查他们想要下载的某个文件是否存在 WebRequest req = HttpWebRequest.Create(checkUri.AbsoluteUri);WebResponse res = req.GetResponse(); 虽然我可以从浏览
访问我的网站时,用户必须输入他的凭据.它们基本上是普通的目录访问凭证.
在某一点上,我通过调用检查他们想要下载的某个文件是否存在

WebRequest req = HttpWebRequest.Create(checkUri.AbsoluteUri);
WebResponse res = req.GetResponse();

虽然我可以从浏览器访问checkUri,但在进行上述检查时我得到401.我想我必须设置

req.Credentials

但我不知道当前凭据的存储位置…

有任何想法吗?

–Update–

>集成Windows身份验证:否
>允许匿名:关闭
> Caler:同一网站页面上的链接(GET)
>模拟:默认为关闭(甚至不知道如何在asp.net mvc中启用它)

解决方法

我在使用表单身份验证的网站上遇到了类似的问题,我能够通过使用 here提供的代码作为线程中的第二个回复来解决此问题.

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
// Add the current authentication cookie to the request
HttpCookie cookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
Cookie authenticationCookie = new Cookie(
    FormsAuthentication.FormsCookieName,cookie.Value,cookie.Path,HttpContext.Current.Request.Url.Authority);

req.CookieContainer = new CookieContainer();
req.CookieContainer.Add(authenticationCookie);

WebResponse res = req.GetResponse();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读