小编jdp*_*nix的帖子

将default.aspx重定向到根虚拟目录

我有一个简单的ASP.NET 3.5应用程序在IIS7下运行在虚拟目录下.所以我的应用的网址就像是http://example.com/app.我想301将请求重定向到example.com/app/default.aspx到example.com/app以获得更好的SEO.我必须通过代码重定向,而不是通过任何IIS设置.我无法通过本文中提到的代码执行此操作:

http://www.4guysfromrolla.com/articles/072810-1.aspx

代码:

if (request.RawUrl.Equals("/default.aspx"))
{
newUrl = string.Format("{0}://{1}{2}",
                 request.Url.Scheme,
                 request.Url.Authority,
                 request.RawUrl.Remove(request.RawUrl.LastIndexOf("/default.aspx", StringComparison.OrdinalIgnoreCase)));

               context.Response.Status = "301 moved permanently";
               context.Response.AddHeader("Location", newUrl);
}
Run Code Online (Sandbox Code Playgroud)

当应用程序在虚拟目录下时,似乎进入无限循环.即使在301重定向导致无限循环之后,request.RawUrl属性也总是返回"/default.aspx".我该如何解决这个问题?

谢谢,

阿西夫

asp.net redirect response.redirect http-status-code-301

13
推荐指数
1
解决办法
7532
查看次数

最简单的方法是"浏览"页面并使用Java提交表单

我需要做的是浏览网页,登录,然后浏览到该网站上需要您登录的另一个网页,因此需要保存cookie.之后,我需要单击该页面上的一个元素,我将在其中填写表单并获取网页返回给我的消息.我需要实际进入页面并单击按钮的原因只是直接导航到链接是因为每次登录时都会为您分配一个会话ID并单击该链接,并且它始终不同.按钮看起来像这样,它不是正常的href链接:

<span id=":tv" idlink="" class="sA" tabindex="0" role="link">Next</span>
Run Code Online (Sandbox Code Playgroud)

无论如何,最简单的方法是什么?谢谢.

更新:在尝试了HTMLunit和其他无头浏览器库之后,它似乎并没有使用任何"无头"的东西.我最近发现的关于这个页面的另一件事是,所有HTML都是以某种奇怪的格式......它都在一个脚本标签内.这是一个例子.

"?ui\x3d2\x26view\x3dss\x26mset\x3dmain\x26ver\x3d-68igm85d1771\x26am\x3d!Zsl-0RZ-XLv0BO3aNKsL0sgMg3nH10t5WrPgJSU8CYS-KNWlyrLmiW3HvC5ykER_n_5dDw\x26fri"],"http://example.com/?ctx\x3d%67mail\x26hl\x3den",,0,"Gmail","Gmail",[["us","c130f0854ca2c2bb",[["n"],["m","New features!"],["u"],["k","0"],["p","1000:500000,10,200000,5,100000,3,75000,2,0,1"],["h","https://survey.googleratings.com/wix/p1679258.aspx?l\x3d1033"],["at","query,5,contacts,5,adv,5,cf,5,default,20"],["v","https://www.youtube.com/embed/Ra8HG6MkOXY?showinfo\x3d0"],
Run Code Online (Sandbox Code Playgroud)

当我检查按钮上的元素时,我在上面为按钮发布的HTML代码出现了,但在进行查看源时却没有.基本上,我需要做的是使用某种GUI并让用户导航到链接,然后让程序填写信息.有谁知道我怎么做到这一点?谢谢.

html java httprequest web-scraping headless-browser

13
推荐指数
2
解决办法
2645
查看次数

具有多个变量初始化的C++ for循环结构

在第二个for循环中,我从gcc得到以下错误:

error: expected unqualified-id before 'int'
Run Code Online (Sandbox Code Playgroud)

我不确定我错过了什么.我已经查看了for循环应该如何看的文档,我仍然感到困惑.这有什么不对?

#include <iostream>
#include <vector>

int main() { 
std::vector<int> values; 

for (int i = 0; i < 20; i++) { 
  values.push_back(i); 
}   

std::cout << "Reading values from 'std::vector values'" << std::endl;
for (int i = 0, int col = 0; i < values.size(); i++, col++) {
  if (col > 10) { std::cout << std::endl; col == 0; }
  std::endl << values[i] << ' ';
  }
}
Run Code Online (Sandbox Code Playgroud)

c++ for-loop

12
推荐指数
2
解决办法
2万
查看次数

渲染画布元素时,某些Android设备速度极慢

我开发了一个Android设备的应用程序,并发现特别是三星galaxy S4,当应用程序/网页使用画布时性能极差.奇怪的是,情况并非如此.

我测试了2个示例应用程序.

http://ie.microsoft.com/testdrive/Performance/FishIETank/Default.html

http://ie.microsoft.com/testdrive/Graphics/TouchEffects/Default.html

第一个工作正常,并且优于我的诺基亚(这是双核)并且是预期的.但是,另一个演示几乎完全没有响应,帧速率接近1,所有其他设备都可以正常运行.

由于第一个应用程序运行良好而另一个应用程序运行良好,因此它提出了问题,为什么?第一个没有事件监听器,而另一个没有事件监听器.可能touchmove是原因而不是画布...或者是使用一些画布功能的演示,而另一个不是,因此性能很差.

我已经阅读了很多关于这个问题的主题,似乎没有人回答.大多数都是几个月......所以我认为生病是一个新话题.

有没有办法解决三星S4上的画布问题...以及可能运行4.2.x的其他Android设备.如果此处的任何StackOverflow用户都有S4,您可以测试这两个演示并确认我的观察结果吗?

javascript mobile html5 android canvas

12
推荐指数
1
解决办法
3672
查看次数

如何在php中返回正则表达式匹配,而不是替换

我试图在HTML文本块中提取图像的第一个src属性,如下所示:

Lorem ipsum <img src="http://example.com/img.jpg" />consequat.
Run Code Online (Sandbox Code Playgroud)

我创建正则表达式以匹配src属性没有问题,但是如何返回第一个匹配的src属性,而不是替换它?

从倾注PHP手册开始,似乎preg_filter()可以解决问题,但我不能依赖于PHP> 5.3的最终用户.

所有其他PHP正则表达式函数似乎都是preg_match()的变体,返回一个布尔值,或preg_replace,它用某些东西替换匹配.有没有一种直接的方法来返回 PHP中的正则表达式匹配?

php preg-replace

11
推荐指数
1
解决办法
1万
查看次数

SSLHandshakeException未找到Android HTTPS的证书路径的信任锚

我正在尝试建立与HTTPS站点的连接,我得到了这个例外:javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
我原来的代码如下:

URL url = new URL("https://example.com");
            HttpsURLConnection urlConnection =
                (HttpsURLConnection)url.openConnection();
            in = urlConnection.getInputStream();
            byte[] responsedata = CommonUtil.readInputStream(in);
            Log.w(TAG, "response is "+CommonUtil.convertBytesToHexString(responsedata));
Run Code Online (Sandbox Code Playgroud)

然后,我在这里阅读Google的文章,并将我的代码修改为:

CertificateFactory cf;
        try {
            cf = CertificateFactory.getInstance("X.509");
            InputStream in = this.mContext.getResources().openRawResource(R.raw.cert);
            Certificate ca;
            ca = cf.generateCertificate(in);
                System.out.println("ca=" + ((X509Certificate) ca).getSubjectDN());
                in.close();
                URL url = new URL("https://example.com");
                HttpsURLConnection urlConnection =
                (HttpsURLConnection)url.openConnection();
                in = urlConnection.getInputStream();
                byte[] responsedata = CommonUtil.readInputStream(in);
            Log.w(TAG, "response is "+CommonUtil.convertBytesToHexString(responsedata));
            in.close();  
Run Code Online (Sandbox Code Playgroud)

关于 …

java ssl https android openssl

11
推荐指数
1
解决办法
3万
查看次数

并行框架并避免错误共享

最近,我回答了一个关于优化可能的可并行化方法来生成任意基数的每个排列的问题.我发布了类似于Parallelized,糟糕的实现代码块列表的答案,有人几乎立即指出了这一点:

这几乎可以保证为您提供错误的共享,并且可能会慢很多倍.(信用gjvdkamp)

他们是对的,死亡很慢.也就是说,我研究了这个主题,并找到了一些有趣的材料和建议(仅存档的MSDN杂志,.NET Matters:False Sharing)来对抗它.如果我理解正确,当线程访问连续的内存(例如,可能支持该数组的数组ConcurrentStack)时,可能会发生错误共享.


对于横向规则下面的代码,a Bytes是:

struct Bytes {
  public byte A; public byte B; public byte C; public byte D;
  public byte E; public byte F; public byte G; public byte H;
}
Run Code Online (Sandbox Code Playgroud)

对于我自己的测试,我想获得这个运行的并行版本并且真正更快,所以我创建了一个基于原始代码的简单示例.6因为limits[0]是我的一个懒惰的选择-我的电脑有6个核心.

单线程块 平均运行时间:10s0059ms

  var data = new List<Bytes>();
  var limits = new byte[] { 6, 16, 16, 16, 32, 8, 8, 8 };

  for (byte a = 0; …
Run Code Online (Sandbox Code Playgroud)

c# parallel-processing performance false-sharing

11
推荐指数
1
解决办法
1173
查看次数

HttpListener:如何获取http用户和密码?

我在这里面临一个问题,使用HttpListener.

当表格的请求

http://user:password@example.com/
Run Code Online (Sandbox Code Playgroud)

制作完成后,如何获取用户和密码?HttpWebRequest有一个Credentials属性,但是HttpListenerRequest没有它,我没有在它的任何属性中找到用户名.

谢谢您的帮助.

c# passwords httplistener

10
推荐指数
3
解决办法
1万
查看次数

模拟ASP.NET身份验证cookie

我维护一个使用的ASP.NET MVC网站

FormsAuthentication.SetAuthCookie(userName, createPersistentCookie);
Run Code Online (Sandbox Code Playgroud)

用户签名(他们最终得到一个名为的cookie .ASPXAUTH).

客户端希望我添加HTML到PDF功能,所以我正在包装wkhtmltopdf库并调用它.这最终成为一个看起来像这样的命令:

wkhtmltopdf http://example.com/Foo/Edit/42 Foo.pdf
Run Code Online (Sandbox Code Playgroud)

但是,这导致生成登录屏幕的PDF,因为wkhtmltopdf用户代理被重定向,因为它没有正确的cookie.

那很好,因为根据wkhtmltopdf文档,有一个这样的论点:

--cookie <name> <value>         Set an additional cookie (repeatable)
Run Code Online (Sandbox Code Playgroud)

所以我将命令修改为:

wkhtmltopdf --cookie .ASPXAUTH 91C0DE4C...  http://example.com/Foo/Edit/42 Foo.pdf
Run Code Online (Sandbox Code Playgroud)

使用时检索cookie值的位置Request.Cookie[".ASPXAUTH"].Value.

不幸的是,这似乎不起作用,我不知道为什么.我知道ASP.NET正在接收cookie,因为当我在重定向后断开登录页面时,我可以看到它已被设置.那么为什么ASP.NET不接受我复制的cookie呢?

这是ASP.NET允许的请求的内容(来自Chrome):

GET http://localhost:50189/ReportingMonth/Edit/1193391 HTTP/1.1
Host: localhost:50189
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-CA,en;q=0.8,en-US;q=0.6
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: .ASPXAUTH=C8189041BF69FEF89A834B6F5035B786EC40145FFFBA3DBB6A04973BC58021C73D8D374E3577AA44BC26A784BC8A0C24831CF49FBD596BFFBA42C613E3C2C0C893D1587B7743D051643088BB8BAB667C047E0D1B84D7B76C4AADA7C62AB460D87C954BF9118BF5945E7D325D455CFD13A34C3DD5E597AFDF75D3C8EE76D8488B08ABBF6AE065B4C57CE47CB65AB17D65; language=en; ui-tabs-[object Object]=0
Run Code Online (Sandbox Code Playgroud)

这是重定向到登录的一个(来自wkhtmltopdf):

GET http://localhost:50189/ReportingMonth/Edit/1193391 HTTP/1.1
Cookie: .ASPXAUTH=C8189041BF69FEF89A834B6F5035B786EC40145FFFBA3DBB6A04973BC58021C73D8D374E3577AA44BC26A784BC8A0C24831CF49FBD596BFFBA42C613E3C2C0C893D1587B7743D051643088BB8BAB667C047E0D1B84D7B76C4AADA7C62AB460D87C954BF9118BF5945E7D325D455CFD13A34C3DD5E597AFDF75D3C8EE76D8488B08ABBF6AE065B4C57CE47CB65AB17D65
User-Agent: Mozilla/5.0 (Windows; U; Windows …
Run Code Online (Sandbox Code Playgroud)

c# asp.net cookies asp.net-mvc wkhtmltopdf

10
推荐指数
1
解决办法
3190
查看次数

检查FTP服务器上是否存在目录

我正在检查我的FTP服务器上是否存在目录:

    public bool DirectoryExists(string directory)
    {
        bool directoryExists;

        var request = (FtpWebRequest)WebRequest.Create(directory);
        request.Method = WebRequestMethods.Ftp.ListDirectory;
        request.Credentials = new NetworkCredential("user", "pass");

        try
        {
            using (request.GetResponse())
            {
                directoryExists = true;
            }
        }
        catch (WebException)
        {
            directoryExists = false;
        }

        return directoryExists;
    }
Run Code Online (Sandbox Code Playgroud)

在这种情况下:

directory = @"ftp://ftp.example.com/Rubicon";
Run Code Online (Sandbox Code Playgroud)

在我的服务器上,我有一个名为的文件夹Rubicon1.这导致我的支票返回true.除非它与目录名称完全匹配,否则如何确保它失败?

c# ftp ftpwebrequest

10
推荐指数
1
解决办法
1万
查看次数