2012-08-07 115 views
4

我有一個基本認證的Intranet網站。asp.net基本認證

是否有可能只有一個頁面不要求證書? 允許訪問任何人只爲一個頁面?

可以在web.config中爲單個頁面設置一些東西嗎?

+0

這是可能的,只是谷歌它請; 「asp.net Authorization」... http://weblogs.asp.net/gurusarkar/archive/2008/09/29/setting-authorization-rules-for-a-particular-page-or-folder-in-web -config.aspx – daryal 2012-08-07 13:15:17

+2

他爲什麼要谷歌它,它是一個有效的問題,如果有人在這個網站上,並希望做同樣的事情,他應該能夠在這個網站上搜索並找到它。 – JonH 2012-08-07 13:18:05

+0

因爲問題是重複http://stackoverflow.com/questions/3628445/allow-access-for-unathenticated-users-to-specific-page-using-asp-net-forms-authe – daryal 2012-08-07 14:05:30

回答

6

以下元素添加到configuration節點你的web.config:

<location path="aFolder/aPageToExclude.aspx"> 
    <system.web> 
     <authorization> 
      <allow users="*"/> 
     </authorization> 
    </system.web> 
</location> 

欲瞭解更多信息和用法看看MSDN文檔:Location Element (ASP.NET Settings Schema)

+0

不知道是否就足夠了,但我已經考慮過了。會嘗試一下,看看。謝謝。 – user1468537 2012-08-07 13:26:24

+0

不客氣,很高興如果我能幫忙。 – 2012-08-07 13:27:00

+0

嗯,它仍然要求憑據。這就是我所擁有的<<位置路徑=「頁面。ASPX 「> <授權> <允許用戶=」 *「/> '和被放置在'<配置>'標籤內。 – user1468537 2012-08-07 13:38:48

0

你需要重寫你的web.config文件設置。
您需要創建一個文件夾並在該文件夾中再創建一個web.config文件。
然後將Page.aspx放在該文件夾中。
然後修改象下面這樣web.config文件代碼:

<authentication mode="Forms"> 
</authentication> 

注:

1)你沒有提的用戶= *它會自動允許所有用戶訪問下,那些頁面夾。

如果您已經使用網頁目錄結構你可以做的是,那麼你就可以保持這種page.aspx在你的登錄頁面相同的水平。

+0

沒有登錄頁面作爲「網站」使用基本身份驗證 – user1468537 2012-08-08 11:52:55

1

我所做的是我不使用ASP.Net身份驗證。我所做的是當用戶輸入用戶名和密碼時,我檢查數據庫是否存在具有該用戶名和密碼的行。

您可以使用objDataSet.Tables[0].Rows.Count > 0來做到這一點。你可以把它放在'如果'的情況下,然後把用戶名放在會話中。你這樣做:

Session["username"] = (Username Variable Here)。然後,您將創建兩個主頁面,一個用於只能登錄訪問的頁面,另一個可供任何人訪問。在僅允許訪問登錄人員的母版頁中,可以檢查會話數據是否爲空。如果它爲空,則可以將該人重定向回登錄頁面。 LoggedIn主頁面可以保持原樣。如果你已經有一個母版頁,那麼你可以複製它,並添加該條件。如果您尚未實現母版頁,則可以將條件置於每個需要用戶登錄的頁面的頁面加載中以訪問該頁面。由於您使用的是會話而不是Cookie,因此用戶很難侵入此係統。

+2

這不會爲接受的答案添加任何內容(這是正確的方法),恐怕我不會推薦_anyone_遵循此建議。 – christophano 2017-05-05 15:28:40