2010-01-19 196 views
0

我配置了ASP.NET成員資格並創建了一些用戶以及受保護的文件夾。 現在,奇怪的是,成功通過身份驗證後,不再進入受保護頁面,登錄頁面再次加載。ASP.NET成員資格

例如,我有一個角色「HR」和用戶「HR1」是誰的「HR」的成員。我有一個受保護的文件夾「HR」,它應該只能被「HR」組訪問。

現在,試圖訪問受保護的文件夾時,我重定向到登錄頁面這是一件好事。但之後,我給了正確的登錄名和密碼,我沒有重定向到我嘗試訪問的頁面。

+0

沒有足夠的信息,這裏實際上提供了一個答案...... – James 2010-01-19 10:32:40

回答

0

我這個有一天 - 你正確地編輯web.config設置,而不是剪切和粘貼? :)

以下內容中的重要組成部分,是「路徑=‘/’」屬性 - 的例子有它設置爲「/ admin」的,默認情況下將導致重定向到登錄頁面的問題,如果/管理員不存在。

<authentication mode="Forms"> 
    <forms loginUrl="Login.aspx" protection="All" timeout="30" name="AppNameCookie" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="default.aspx" cookieless="UseCookies" enableCrossAppRedirects="false"/> 
</authentication> 
0

如果試圖重定向到一個受保護的頁面,與誰是不是在你已經分配了頁面,讓角色的用戶,您將得到重定向回登錄 - 這是發生了什麼事?

+0

不,這不是發生了什麼。我已經編輯了答案,請看看它。謝謝。 – Attilah 2010-01-19 10:38:34

0

您可能需要在你的web.config添加認證的login.aspx的頁面(不要忘記其他公共路徑):

<configuration> 

    <!-- Path access rights --> 
    <location path="login.aspx"> 
     <system.web> 
      <authorization> 
       <allow users="?"/> 
      </authorization> 
     </system.web> 
    </location> 

    <location path="css"> 
     <system.web> 
      <authorization> 
       <allow users="*"/> 
      </authorization> 
     </system.web> 
    </location> 
    <location path="images"> 
     <system.web> 
      <authorization> 
       <allow users="*"/> 
      </authorization> 
     </system.web> 
    </location> 

    <location path=""> 
     <system.web> 
      <authorization> 
       <deny users="?"/> 
      </authorization> 
     </system.web> 
    </location> 
    <!-- END --> 

    <authentication mode="Forms"> 
      <forms loginUrl="~/login.aspx" defaultUrl="~/" name=".MYAPPCOOKIE" timeout="60" path="/" protection="All"/> 
    </authentication> 

</configuration> 

編輯:寫這篇文章,我重讀你的問題,我想你可能已經做到了這一點,但得到了一些角色權限不正確?它可能有助於粘貼更多信息,例如對這些路徑的web.config特定權限。

0

這可能聽起來很愚蠢,但是您已經啓用角色管理器了嗎?

不像是宣佈在web.config提供商啓用了會員供應商,你確實有打開角色管理器,否則你會看到的行爲你描述:

<roleManager enabled="true"> 
    <providers> 
    <clear /> 
    <add [...] /> 
    </providers> 
</roleManager> 

基本上,ASP.NET會員系統的工作方式,如果用戶沒有正確的角色來訪問該頁面,那麼他們會被踢回到登錄屏幕。 ASP.NET不容易區分未經身份驗證的請求和用戶身份驗證但沒有權限的請求。

(我忘了過去這樣做)。