2010-11-29 13 views
2

我是asp.net的初學者。我目前在屏幕底部有一個忘記密碼鏈接按鈕的登錄頁面。我也使用表單身份驗證來防止未經授權的用戶訪問其他頁面。除了一件事外,認證似乎工作正常。一旦用戶點擊鏈接按鈕,它將阻止用戶訪問密碼恢復頁面。我如何允許所有用戶訪問登錄/密碼頁面,並防止他們在未經過身份驗證的情況下查看其他頁面?如何使用表單身份驗證將用戶重定向到密碼恢復頁面

下面的代碼是爲了防止其他匿名視圖無法訪問其他頁面。但我得到了關於如何允許他們訪問密碼恢復頁不知道......

<authentication mode="Forms"> 
    <forms loginUrl="/Presentation/Display/Login.aspx" name=".ASPNETAUTH" protection="All" path="/" timeout="120" cookieless="UseDeviceProfile" slidingExpiration="true"/> 
</authentication> 
<!-- This section denies access to all files in this application except for those that you have not explicitly specified by using another setting. --> 
<authorization> 
    <deny users="?"/> 
</authorization> 

回答

2

您需要使用<location>元素將設置應用到特定的路徑,然後添加一個<allow />對於非登錄用戶。

例如:

<location path="PasswordRecovery.aspx"> 
    <system.web> 
     <authorization> 
      <allow users="?" /> 
     </authorization> 
    </system.web> 
</location> 
+0

所以我應該在哪裏放置在web配置這個代碼?在?或以上? – DEN 2010-11-29 02:36:43

+0

@DEN:在底部http://msdn.microsoft.com/en-us/library/b6x6shw7.aspx'`元素增加(幾乎) – SLaks 2010-11-29 02:37:44

+0

@slarks,我仍然無法訪問密碼恢復頁面。url變成http:// localhost:4772/Presentation/Display/Login.aspx?ReturnUrl =/Presentation/Display/PasswordRecovery.aspx,但頁面仍然保留在login.aspx – DEN 2010-11-29 03:33:26

2
<location path="Presentation/Display/PasswordRecovery.aspx"> 
    <system.web> 
    <authorization> 
     <allow users="?"/> 
    </authorization> 
    </system.web> 
</location> 

這允許匿名用戶查看您的密碼恢復頁。您可能希望對存儲CSS和/或圖像資源的目錄執行相同的操作,以防您的登錄頁面和/或恢復頁面需要它們。

2

使用地點:

<location path="passwordrecovery.aspx"> 
    <system.web> 

     <authorization> 
      <allow users="*"/> 
     </authorization> 
    </system.web> 
</location> 
相關問題