最近公司領導要求,IIS網站要由經典模式改成集成模式,以提升性能。改完以後,登陸成功跳轉到主頁以後,頁面提示「」HTTP 錯誤 401.0 - Unauthorized「,「您無權查看此目錄或頁面」,截圖以下:web
網上找了不少資料,都無法解決。先看看個人網站IIS配置目錄:cookie
IIS配置爲網站,其中網站根目錄下,還有個子應用程序,咱們假設網站應用程序名爲WebSite,子應用程序名爲Portal,其中WebSite網站對應的文件夾下有Web.config,Portal子應用程序對應的文件夾下也有web.config。而WebSite文件夾下的web.config爲根目錄配置文件,且配置了form認證,配置以下:less
<authentication mode="Forms"> <forms cookieless="UseCookies" loginUrl="/Portal/Account/Login" protection="None" timeout="120"></forms> </authentication>
按裏說,這裏配置了form認證,登陸成功就能夠跳轉到主頁,但事實上並不是如此,一直提示上面的報錯。後來看了網上的一片帖子,找到了答案:性能
https://stackoverflow.com/questions/19536955/request-isauthenticated-is-always-false網站
其中Ger Groot給出答案中,解決了個人問題:spa
<modules> <remove name="FormsAuthentication" /> <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" /> </modules>
原來只須要在個人子應用程序web.config文件中,system.webServer目錄下,添加以上代碼就好了,問題解決。code
後來再仔細思索了一下,發現orm
<remove name="FormsAuthentication" />
這段本來就在子應用程序web.config配置中存在,莫非就是由於這個致使子應用程序portal沒有權限?索性去掉這句,也無需添加blog
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" />
問題獲得解決。rem