2010-07-05 43 views
1

是否有一些方法在asp.net中获取绝对URL与无Cookie会话?绝对URL Cookieless

更新:我需要创建其他新的URL。它不是请求的URL。

我正在使用Response.ApplyAppPathModifier获取cookie会话的相对URL。

Thx提前,

+0

你可以多给点背景知识。 Cookie如何影响URL? – 2010-07-05 15:45:08

+0

什么是“无cookie会话的URL”? – Gumbo 2010-07-05 15:47:45

+0

@Gumbo:在ASP.NET中使用无Cookie会话的url是您在web.config 中设置时的结果。请检查我的答案以获取更多信息。 – XIII 2010-07-05 16:11:07

回答

2

我试图Request.RawUrl和Request.Url(及其在立即窗口属性)。
无确实表现出额外的属性设置(web.config中):

<sesionState cookieless="true" /> 

使得在URL中。

http://localhost:2677/WebSite1/(S(3abhbgwjg33aqrt3uat2kh4d))/cookielesssessiondetection.aspx

但是,如果你的那部分,3abhbgwjg33aqrt3uat2kh4d后的时候,你可以通过把它:

Session.SessionID 

更新的更新问题后:

我把我的测试应用程序指示页面上的超链接控件。在后面的代码,Page_Load中,我说:

HyperLink1.NavigateUrl = Response.ApplyAppPathModifier("About.aspx"); 

当我运行该页面,然后链接直接About.aspx被设置与Cookie会话包括一部分。

当我查一下我的浏览器中呈现的HTML源我看到这一点:

<a id="HyperLink1" href="/WebSite1/(S(3tzgdnmhwxmxqer10d11auuq))/About.aspx">HyperLink</a> 
+0

更新:我需要创建其他新的URL。它不是请求的URL。 – fravelgue 2010-07-05 16:26:46

+0

是的,这是一个相对URL,但我需要绝对URL,我使用string.format获取域名。但我希望存在一个特定的功能。 Thx为你提供帮助。 – fravelgue 2010-07-07 11:13:16

+0

我不认为有一个特定的功能开箱即用。但是,您可以创建一个全新的Uri实例,并在Request.Uri属性中传递具有某些字符串格式的部分。 – XIII 2010-07-08 09:13:39

0

你尝试Request.Url.ToString()。它应该适合你。 如果您需要的是您网站上另一页的网址,那么您可以像这样继续......

String url = new Uri(Context.Request.Url,ResolveUrl(“〜/ ABC.aspx”))。的ToString)

我们也有像Request.Url.AbsoluteUri

我希望有以上应为你工作。

+0

我不知道为什么。但ResolveUrl不适用于无Cookie的网址。 – fravelgue 2010-07-05 16:26:16