2011-10-19 14 views
1

最近、2つのデータベースを統合する必要がある別のプログラマからASP.NETプロジェクトを継承しました。それらを統合してコード内の結果の問題を修正した後、aspnetメンバーシップ・テーブルを削除し、aspnet_regsqlウィザードを使用してそれらを再作成しました。私はいくつかのユーザーとロールを作成し、私のアプリケーションでは、標準のasp.netログイン制御を使ってうまくログインできました。私はその後、ログアウトし、再度ログインしようとしたが動作しなかった。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> 

私は行くよ。ここ

は私のログイン制御のためのコードですこのことを理解しようと狂っているので、どんな助けでも大歓迎です。

答えて

1

まあ私は愚かだと感じます。 「ログイン」ボタンをクリックしても正常にログインできますが、テストするたびにEnterキーを押すだけです。 Enterキーイベントは、私がまだ実装されていなかったページ上にあった検索ボタンによって捕捉されていたので、すべてはポストバックでした。

私は、ログインコントロールをパネルにラップし、DefaultButtonをログインボタンのIDに設定しました。問題が解決しました。

+0

私が持っていた問題と解決策はまさに問題です。 – Liath

関連する問題