我開發了一個.NET 4.0 ASP.NET網站。所有的工作都很棒。 在IIS7.5,WS2008R2 Enterprise +上開發的所有更新。奇怪的ASP.NET身份驗證問題
我部署到WS2003服務器。幾乎所有的工作除了當我登錄到網站(Forms auth)時,它會將我重定向回登錄頁面!沒有錯誤,沒有任何東西。 有時,當我設法通過它,並導航到另一個頁面或執行像點擊按鈕一樣的操作時,我會被重定向回登錄頁面!
確信服務器設置存在問題,IT人員安裝了WS2008R2 +的所有更新。太棒了 - 所以我部署了該網站。你猜怎麼了?仍然存在同樣的問題!
是什麼給出的?爲什麼在登錄時(無需執行此操作的代碼)或執行操作時,它會重定向回登錄頁面?
另一件事是,我正在使用Telerik控件以及ASP.NET AJAX擴展器。服務器似乎沒有加載它們(服務器和客戶端都沒有錯誤)。應該有下拉菜單,並且除了要彈出的AJAX日曆之外不起作用 - 這也不起作用。
我不知道現在該做什麼,因爲這是令人沮喪的,從來沒有遇到過這樣的問題。
這裏是我的配置文件的一部分:
<configSections>
<sectionGroup name="system.web">
<section name="sanitizer" requirePermission="false" type="AjaxControlToolkit.Sanitizer.ProviderSanitizerSection, AjaxControlToolkit"/>
</sectionGroup>
</configSections>
<system.web>
<globalization culture="en-gb" uiCulture="en-gb"/>
<httpRuntime maxRequestLength="100240"/>
<trust level="Full"/>
<sanitizer defaultProvider="HtmlAgilityPackSanitizerProvider">
<providers>
<add name="HtmlAgilityPackSanitizerProvider" type="AjaxControlToolkit.Sanitizer.HtmlAgilityPackSanitizerProvider"/>
</providers>
</sanitizer>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="Telerik.Web.UI, Version=2012.3.1017.40, Culture=neutral, PublicKeyToken=949410a6b6ad1e71"/>
</assemblies>
</compilation>
<sessionState mode="InProc" timeout="30"/>
<authentication mode="Forms">
<forms name="RegisteredUsers" defaultUrl="~/Help/About.aspx" path="/" protection="All" loginUrl="~/Account/Login.aspx" timeout="31"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
<httpHandlers>
<add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false"/>
</httpHandlers>
</system.web>
<location path="Account">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="Public">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="Styles">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="Scripts">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="Images">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="Help">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
<add name="Telerik_Web_UI_WebResource_axd" verb="*" preCondition="integratedMode" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource"/>
</handlers>
</system.webServer>
至於驗證碼:
// log them in and authenticate
FormsAuthentication.SetAuthCookie(this.txtUsername.Text, false);
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, this.txtUsername.Text, DateTime.Now, DateTime.Now.AddYears(1), false, this.txtUsername.Text);
// For security reasons we may hash the cookies
string hashCookies = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashCookies);
cookie.Path = FormsAuthentication.FormsCookiePath;
cookie.Expires = ticket.Expiration;
// add the cookie to user browser
Response.Cookies.Add(cookie);
Session[CommonStrings.USER_LOGGED_IN] = userResponse.User;
// if DefaultWebPage is not null then redirect to that otherwise, default behavior.
if (!string.IsNullOrWhiteSpace(userResponse.User.DefaultWebPage))
{
Response.Redirect(userResponse.User.DefaultWebPage, false);
}
else
{
FormsAuthentication.RedirectFromLoginPage(this.txtUsername.Text, false);
}
是一臺服務器或MULT上的應用IPLE?如果它位於羣集上,則可能會遇到與您剛剛用於登錄的服務器不同的服務器。 – Stokedout
聽起來像你不使用像Fiddler一樣的http調試器。嘗試一下,你可以通過這種方式發現你的問題。 –
在單個服務器上(加入域)。嘗試的提琴手 - 顯示沒有明顯的,但302重定向到登錄頁面 –