2014-05-10 57 views
1

我的問題很簡單。 我在Windows 7上有一個帳戶「saqib」。我在「管理員」組中添加了此帳戶。現在我的要求是,我想要「saqib」訪問我的asp.net應用程序中的管理頁面。我在IIS-7中啓用了Windows身份驗證並禁用了匿名身份驗證。 我在應用程序中添加了一個包含管理頁面的文件夾。我還添加了一個web.config文件到這個文件夾並添加了這些設置。爲什麼我的管理員組中的帳戶在我只允許管理員訪問後無法訪問asp.net頁面

<?xml version="1.0"?> 
<configuration> 
<system.web> 
    <authorization> 
    <allow roles="Administrators"/> 
    <deny users="*"/> 
    </authorization> 
</system.web> 
</configuration> 

現在,當我想通過輸入用戶名作爲「saqib」我的密碼來訪問這個管理頁面,我無法訪問我的管理頁面。爲什麼?

儘管我可以通過使用內置web.config文件中具有相同設置的「Administrator」帳戶中構建的窗口來訪問該管理頁面。爲什麼會發生?

回答

0

請檢查此tutorial on MSDN以更好地瞭解您的代碼。
主要問題是您沒有機會讓您的管理員帳戶認證 - 您只需拒絕最後一行中的所有用戶。

所以,你必須使用<deny users="?" />,如@Dust提及,但不是代替<deny users="*" />,但所有的指令之前,像這樣:

<authorization> 
    <deny users="?" /> 
    <allow roles="Administrators" /> 
    <deny users="*" /> 
</authorization> 

另外,還要確保您所提供的authentication元素設置身份驗證模式,爲您的應用程序,例如:

<authentication mode="Forms" > 
    <forms loginUrl="login.aspx" name=".ASPXFORMSAUTH" /> 
</authentication> 
0

它不應該是<deny users="?" />。由於您拒絕所有用戶,但是管理員的角色也是用戶,所以您在做什麼讓人感到困惑,所以它有意義,它不起作用。

+0

沒有親愛的,你是不是正確的,因爲如果我們那麼就意味着我們否認匿名用戶,但允許所有通過驗證的用戶<拒絕用戶= /「?」> (即提供正確我們的用戶名稱和密碼),即使它們不屬於「管理員」組。我之前已經嘗試了你的建議,但我在這個評論中的結論是,我說的是。 –