2012-04-02 25 views
0

我想用login.aspx設置我的web項目,而不是基於輸入的url。同一個項目與登錄和沒有登錄的基礎上的網址?

讓說,如果有人訪問www.mywebsite.com/A - 可以使搜索沒有登錄

       but if accesses on www.mywebsite.com/B will be with login. 

我與會話websiteID工作,但引起的問題。網站ID正在彼此運行。

爲什麼我這麼做的原因是B方式不公開。它被用於某些其他人公開的某些人。

這種惡劣的不禮貌?我應該分成2個不同的網站項目嗎?我沒有這樣做,因爲一切都是一樣的,但只有

區別是搜索結果。因此做2個上傳和維護2個項目是很麻煩的。

的web.config是另一個問題,因爲我不能這樣做asp.net成員資格提供解決方案,同時它也影響溶液A

這將是您的建議?

Ps;我聽說只保護web.config中的特定目錄。我怎樣才能做到這一點?這可以幫助嗎?

編輯:都有相同的步驟aspx頁面。在我登錄後,我被重定向到解決方案A使用的默認頁面。唯一的區別是查詢字符串參數。這就是爲什麼要保護default.aspx(如果它是兩者的第一個搜索頁面),都會影響到這兩者。除非可以使用查詢字符串參數進行保護,否則在web.config中保護路徑將不起作用?我錯了嗎?

非常感謝您的幫助。

回答

0

您使用的架構非常正確,您無需創建兩個不同的應用程序。 關於對需要登錄,谷歌用於該項的頁面

「在web.config中的位置路徑」, 你會得到認證和網頁的完整解決方案授權

編輯 - >我可以」因爲它太大了,所以希望自己做R & D將幫助你瞭解更多信息並找到合適的解決方案。

0
<location path="A.aspx"> 
    <system.web> 
     <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login.aspx" timeout="2880" /> 
     </authentication> 
    </system.web> 
    </location> 

這可能幫助

+0

實際上,你讓我錯了,或者我可能解釋不夠。他們有相同的步驟aspx頁面。在我登錄後,我被重定向到解決方案A使用的默認頁面。唯一的區別是查詢字符串參數。這就是爲什麼保護A.aspx,如果它是兩者的第一個搜索頁面,將影響到兩者。我錯了嗎? – batmaci 2012-04-03 09:21:18

1

我想提出以下建議:部署當前應用程序的兩種不同的解決方案配置成兩個不同IIS站點。您可以維護相同的代碼庫,但是您可以在不同的web.config中使用不同的設置。

您可以創建一個「預覽」解決方案配置。在web.preview.config中,您可以添加表單驗證代碼。

你可以在這裏找到更多的細節:http://www.tomot.de/en-us/article/5/asp.net/how-to-use-web.config-transforms-to-replace-appsettings-and-connectionstrings

+0

此刻,我對你說的話確實很友善。但可能是一個相當尷尬的方式。因爲我保留了2個web.config文件(web.config和web.config2),並根據我發佈的內容,將名稱切換爲web.config。感謝您的鏈接。我在讀它。 – batmaci 2012-04-03 09:18:28

+0

我剛讀完文章。這是相當不錯的學習,但我不知道是否它可以幫助我,而我不尋找測試/生產環境設置差異,而是我想運行2 web.config 2項目(1物理項目的確如我上面解釋) – batmaci 2012-04-03 12:11:24

+0

我想你還沒有理解web.config轉換不限於我在文章中使用的示例。可以在web.config中自動更改近似值。在我看來,您發佈的兩個網站之間的唯一區別是發佈位置和web.config?如果我在這個假設中是正確的,那麼使用web.config轉換是要走的路。 – citronas 2012-04-03 18:46:50

0

可以在後面的代碼實現這一點。只需在default.aspx的頁面加載過程中檢查值websiteID(會話變量),並相應地更改搜索參數。 不要忘記給Global.asax的Session_start中的websiteID賦予默認值,這樣你就可以很容易的檢查它是否被login修改了。