Asp.net MVC Form認證,IIS改爲集成模式後,FormsAuthentication.SetAuthCookie無效,Request.IsAuthenticated值,始終爲false,

最近公司領導要求,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

相關文章
相關標籤/搜索