从ASP.Net服务器端访问深度链接url

本文关键字:深度 链接 url 访问 服务器端 ASP Net | 更新日期: 2023-09-27 17:59:46

我知道ASP.Net Request.Url无法为我提供SWFAddress生成的深度链接Url。

http://www.mysite.com/Default.aspx#/6/

ASP.Net请求Url仅返回

http://www.mysite.com/Default.aspx

我发现了一个问题,但它已经很老了——SWFAddress深度链接和C#库?

是否有任何库/技术可以从服务器端访问深度链接url?

谢谢!

更新:以下是我访问/Default.aspx#/6/时得到的信息

? Request.Url
{http://localhost:56476/Default.aspx}
    AbsolutePath: "/Default.aspx"
    AbsoluteUri: "http://localhost:56476/Default.aspx"
    Authority: "localhost:56476"
    DnsSafeHost: "localhost"
    Fragment: ""
    Host: "localhost"
    HostNameType: Dns
    IsAbsoluteUri: true
    IsDefaultPort: false
    IsFile: false
    IsLoopback: true
    IsUnc: false
    LocalPath: "/Default.aspx"
    OriginalString: "http://localhost:56476/Default.aspx"
    PathAndQuery: "/Default.aspx"
    Port: 56476
    Query: ""
    Scheme: "http"
    Segments: {string[2]}
    UserEscaped: false
    UserInfo: ""

更新:很抱歉我没有把问题说清楚。如果用户浏览以下url(很可能保存在收藏夹中),我想从服务器端检索完整的url。你可以去那个网址;这是一款真正的应用程序。

http://publ.com/Kgd3A5y#/13/zoomed

我当前的解决方案:我在客户端订阅了一个事件(比如页面加载)。我在客户端解析url,然后使用ajax返回到服务器。缺点是它会创建两个页面加载。

从ASP.Net服务器端访问深度链接url

带有#的URL的一部分是锚点。锚点仅在客户端可见。例如,您需要使用JavaScript处理客户端的锚点,并且可以将您的请求转换为服务器端可读的正确URL。

这不是Asp.Net或C#特有的。这是任何服务器技术的标准行为。

仅引用标准RFC1808:

请注意,片段标识符(及其前面的"#")不被视为URL的一部分

更新

如果你想从你的swf向服务器发送一些数据,你可以在服务器端编写web服务,然后swf可以与这个web服务通信,这样你就可以发送你喜欢的任何数据。

客户端JavaScript也可以将URL发送到web服务。

编辑:

伙计你已经收到很多请求了:

81个请求❘转移了137亿❘24.10s(有载:2.41s,DOMContentLoaded:2.17s)

,所以我认为用异步请求发送几个字节不会有任何区别。

此外,我不认为你能做什么。锚完全是客户端的事情,它是URL的not部分,要处理它,你需要在客户端处理,也需要在客户端进行处理。你需要从服务器加载你的客户端脚本,故事结束。

Flash中有可用的套接字社区,但这太过分了,你提到你无法访问swf代码。

真的,我看不出有什么理由改变你所拥有的,也没有什么好的选择。

不,这不是深度链接。你说的是本地主播。完全不同的东西。

你的问题需要重新定义,然后才能被理解。你的问题不是深度链接。您的问题是本地程序正在为本地工作生成本地值(锚点)。

如果您在服务器端需要这些信息(鉴于我们在表面上的新定义,您似乎不会——本地工作和数据希望是本地的),那么您需要做以下两件事中的一件。

  1. 重新定义您的需求和设计,使其不在本地执行这些功能。

  2. 实现本地进程和服务器之间的通信,以传递此信息。


基于对这个问题的评论和思考:

通过对您的需求进行以下更改(上面的#1),您可以轻松实现解决方案

而不是使用看起来像这个的链接

http://www.mysite.com/Default.aspx#/6/

使用类似的链接

http://www.mysite.com/Default.aspx/6/

http://www.mysite.com/Default.aspx?6/

这些是实际的"深度链接",服务器端将能够看到它们,您的库也将能够处理它们。(基于您链接到的文档的快速扫描。)