1

ローカルホストで作業している間、問題なく動作しました。

ただし、アプリケーションを別のサーバーにデプロイすると、例外が発生し始めました。

基本的に、これは例外を引き起こす命令です。

HttpContext.Current.User.IsInRole(*roleName*)

ここで、roleNameは、アプリケーション内のさまざまなロールを表す文字列です。

発生した例外:

System.Web.HttpUnhandledException

更新: これは、ユーザーが認証されている方法です。

protected void LoginControl_Authenticate(object sender, AuthenticateEventArgs e)
{
    Page.Validate();
    if (!Page.IsValid) return;

    if (MyAuthenticate(LoginControl.UserName, LoginControl.Password))
    {
        if (LoginControl.RememberMeSet == true)
        {
            createCookie(LoginControl.UserName, Convert.ToInt32(ViewState["idcustomer"]), true);
        }
        else
        {
            createCookie(LoginControl.UserName, Convert.ToInt32(ViewState["idcustomer"]), false);
        }
        e.Authenticated = true;
        Response.Redirect(FormsAuthentication.GetRedirectUrl(LoginControl.UserName, true));
    }
    else
    {
        e.Authenticated = false;
    }

ユーザー認証に関連している場合、何が欠けていますか? 前もって感謝します。

更新:すべてに感謝します。リモート デバッグを実行したところ、これが実際のエラーであることがわかりました。

ここに画像の説明を入力

さて、これは状況です: ユーザーはログイン ページで認証されました。なので、DBへの接続は問題ないと思います。そうしないと、User はログイン ページを MasterPage (このエラーが発生している場所) に渡すことができませんでした。

何が欠けている可能性がありますか?再度、感謝します、

4

2 に答える 2

0

この問題の解決策は、データベースにメンバーシップ テーブルを手動で作成する代わりに、machine.config を介して完全な信頼を付与し、スキーマを自動生成することで、mysql_aspnet_membership プロバイダーを作成することでした。 .

その後、これはもう壊れませんでした。

于 2012-01-25T10:53:01.890 に答える
0

暗い場所でのワイルドスタブですが、内部例外はおそらく null 参照例外であり、ユーザーがサーバーで認証されていないため、HttpContext.Current.User が null であることが原因です。Windows統合認証がライブWebサーバーまたは同様の認証設定の問題で有効になっていないだけだと思います。

于 2011-11-16T13:46:10.203 に答える