Asp.net mvc 为什么GetResponseStream不对从MVC Razor视图获取的数据执行服务器响应cookie?

Asp.net mvc 为什么GetResponseStream不对从MVC Razor视图获取的数据执行服务器响应cookie?,asp.net-mvc,razor,Asp.net Mvc,Razor,我在IIS上有一个.net网站,它有一个指向MVC应用程序的虚拟目录。我正在尝试重用RAzor视图标题上的sitemaster.master 我在Razor视图_heard_it.cshtml上有下面的代码 我正在test.aspx页面上做一个StreamReader,它只有一个sitemaster.master。req.GetResponse确实从sitemaster(菜单栏等)返回流。但是sitemaster.master有Request.Cookies,Cookies永远没有值。我知道它们

我在IIS上有一个.net网站,它有一个指向MVC应用程序的虚拟目录。我正在尝试重用RAzor视图标题上的sitemaster.master

我在Razor视图_heard_it.cshtml上有下面的代码

我正在test.aspx页面上做一个StreamReader,它只有一个sitemaster.master。req.GetResponse确实从sitemaster(菜单栏等)返回流。但是sitemaster.master有Request.Cookies,Cookies永远没有值。我知道它们应该有一个值,因为我已经在mvc应用程序之外进行了测试。cookie会更改sitemaster的视图,这就是我需要它的原因

//此代码确实返回流

WebRequest req = HttpWebRequest.Create(url );
req.Method = "GET";

string source;
using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream()))

source = reader.ReadToEnd();


Response.Write(source);  // I get HTML result back from my sitemaster.master.

Cookie在请求头中发送,而您不在此处向webrequest添加任何Cookie

我在CookieContainer中添加了cookie。此代码正在成功运行。
此代码位于Razor视图_header_it.cshtml中:

 @{
       string userTyp3 = Request.Cookies["MY_USERTYPE"] != null ? Server.UrlDecode(Request.Cookies["MY_USERTYPE"].Value) : "";

        CookieCollection _CookieCollection2  = new CookieCollection();

        HttpWebRequest _request2 = (HttpWebRequest)WebRequest.Create("http://MySite_TEST/it/test.aspx");
        _request2.Method = "GET";
        _request2.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
        _request2.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)";
        _request2.Referer = "http://MySite_TEST/it";
        _request2.KeepAlive = true;

        //Here is auth cookie, works fine
        _request2.CookieContainer = _cookieContainer;
        _request2.CookieContainer.Add(( new Cookie ( "MY_USERTYPE", userTyp3 , "/", "MySite_TEST") )) ;
        _request2.Headers.Add(HttpRequestHeader.CacheControl, "no-cache=set-cookie");

        HttpWebResponse _response2 = (HttpWebResponse)_request2.GetResponse();
        StreamReader _reader2 = new StreamReader(_response2.GetResponseStream());
        Response.Write(_reader2.ReadToEnd());  // 

        _response2.Close();
        _reader2.Close();       
}

我在此URL上使用了以下示例:

 http://stackoverflow.com/questions/2476092/login-website-curious-cookie-problem?rq=1]
多谢各位