2012-11-27 48 views
2

以前更新過我的mvc應用程序,從mvc2到mvc 3,最後一週更新到mvc 4.還將它從IIS6服務器移動到IIS7服務器。'F'代幣在網址?

現在很多由mvc路由生成的url在url中都有token。就像這樣:

http://domain.net/(F(D4379600E44F6AF6D4695965E697E4EF18E37E9D4A33EF1DFAC33B05D8BD1C3601EC6D41276ADE9048699F26558469FB12118644813DE200464A082F0250855D8AC0825CAA33DFF40092C74D3B3AA0440D2547DEFE320118B53A1C43149B9E616D8579D2DFC35225E06055C3E4F8FF37F610729E))/page/something

此標記適用於網頁上的所有URL的70%,甚至圖像。 它看起來像用於無Cookie瀏覽器的Forms Auth令牌。但是我在web.config中禁用了Cookieless(僅將其設置爲cookie)。此外,它適用於所有瀏覽器(啓用cookies),甚至當用戶沒有登錄時。

如何解決此問題?有任何想法嗎?想想,當升級到新的mvc時,我錯過了一些東西。

UPD。試圖禁用cookieless(web.config):

<sessionState cookieless="false" /> 
<authentication mode="Forms"> 
    <forms loginUrl="~/LogOn" timeout="2880" cookieless="UseCookies" /> 
</authentication> 

UPD1。我在母版頁中使用了幾個RenderAction命令來渲染一些通用的部分視圖。和這些部分的控制器方法,我用OututCache屬性標記。刪除了這個屬性 - 所有的網址現在看起來不錯。這很奇怪,但幫助了我。

<%Html.RenderAction("BlogPosts", "Widgets", new RouteValueDictionary()); %> 


[ChildActionOnly] 
    //[OutputCache(Duration = 180)] 
    public ActionResult BlogPosts() 
    { 
     var model = new BlogListModel(); 
     model.BlogPostType = defService.BlogType(); 
     model.List = widgetService.BlogPosts(3); 
     return PartialView("Widgets/BlogPostsWidget", model); 
    } 
+0

http://stackoverflow.com/questions/6229565/iis7-5-asp-net-mvc-users-hitting-strange-urls-f1xe9exixpz可能包含一些有用的信息。 – Stijn

+0

不幸的是,它並沒有幫助我 – barbarian

+0

你能澄清你是如何禁用web.config中的Cookieless嗎? – eis

回答

0

我同意其他評論者,這可能是由cookieless會話狀態屬性造成的。各種網站顯示,如果您將cookieless屬性設置爲true,則網址將嵌入會話ID。

實施例:http://yourserver/folder/(session這裏ID)/default.aspx

OutputCache似乎與cookie的impleme沒有連接ntation。

web.config您所做的更改可能不會立即生效。 It's a little ambiguous,但爲了安全起見,應在對web.config文件進行任何更改後重新啓動應用程序。

我會重新啓動應用程序,取消註釋OutputCache代碼,構建/發佈以及查看獲得的結果。