-1

私はwindowsベースの認証に取り組んでいます。私の設定は次のようになります

web.config

認可

allow roles="管理者"

allow roles="SuperUser" />

ユーザーを拒否する="*"

認可


global.asax.cs で

    void Application_AuthenticateRequest(object sender, EventArgs e)
    {
        string message = string.Empty;
        if (HttpContext.Current.User.Identity.IsAuthenticated)
            message = HttpContext.Current.User.Identity.Name + " login successfully !";
        else
            message = HttpContext.Current.Request.UserHostAddress + " login failure !";             
    }

これはカッシーニで完璧に機能します。アプリケーションにログインできます。

Windows認証を有効にしてIIS 7でホストすると。

オブジェクト参照がオブジェクトのインスタンスに設定されていません。

これは、何らかの理由で HttpContext.Current.User が null であるためです。

何らかの理由でユーザーが httpcontext に設定されていません。

これを解決するのを手伝ってください

前もって感謝します。

4

1 に答える 1

0

iis apppool のマネージド パイプラインは Integrated に設定されています。これをオンにすると、Application_AuthenticateRequest イベントで httpcontext が設定されません。これは、httpcontext にアクセスするには時期尚早です。

そのため、ロジックをランディング コントローラー メソッド内の適切な場所に移動したところ、機能しました。

ありがとう。

于 2013-06-17T22:15:01.107 に答える