[英]ASP.NET Login Control not consistently authenticating
我最近從另一個需要繼承兩個數據庫的程序員那里繼承了一個ASP.NET項目。 合並它們並解決代碼中的問題后,我刪除了aspnet成員表,然后使用aspnet_regsql向導重新創建了它們。 我創建了幾個用戶和角色,並且在我的應用程序中使用標准的asp.net登錄控件能夠很好地登錄。 然后,我注銷並嘗試再次登錄,但沒有成功。
為了查明問題,我在事件LoggingIn,Authenticate和LoggedIn上設置了斷點,並以某種方式觸發了這些事件。 該頁面將進行驗證,但是如果您輸入正確的憑據,它似乎只會回發而不觸發任何登錄事件。
最終,我感到沮喪,然后繼續前進。 然后今天(第二天)我進來再次檢查,以某種方式它使我第一次登錄。 我嘗試注銷並重新登錄,但遇到了同樣的問題。 驗證,但無身份驗證。
這是我的登錄控件的代碼:
<asp:Login ID="Login1" runat="server" UserNameLabelText="Username:" PasswordLabelText="Password:" OnLoggedIn="Login1_LoggedIn"></asp:Login>
后面的Login1_LoggedIn代碼:
protected void Login1_LoggedIn(object sender, EventArgs e)
{
if (Roles.IsUserInRole(Login1.UserName,"Administrator"))
Response.Redirect("~/Admin/Default.aspx");
else if (Roles.IsUserInRole(Login1.UserName,"Appointment Administrator"))
Response.Redirect("~/ApptReq/Management/ManageEntities.aspx");
}
Web.config成員資格部分:
<system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" timeout="60" cookieless="UseCookies" name="Test" slidingExpiration="true" path="/"></forms>
</authentication>
<roleManager enabled="true">
<providers>
<clear />
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="test" applicationName="Test" />
</providers>
</roleManager>
<membership defaultProvider="AspNetSqlMembershipProvider">
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="test" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="Test" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" />
</providers>
</membership>
我快要弄清楚這個事情了,所以任何幫助將不勝感激。
好吧,我覺得很蠢。 事實證明,如果您單擊“登錄”按鈕,則登錄工作正常,但是每次進行測試時,我都只是按Enter鍵。 回車鍵事件是由我在頁面上尚未實現的搜索按鈕捕獲的,因此所有操作都已回發。
我只是將登錄控件包裝在面板中,並將DefaultButton設置為登錄按鈕的ID。 問題解決了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.