1

IIS 7.0 の httpmodulle でサーバー変数 ("LOGON_USER") を設定しようとしていますが、アーカイブしていません。

これまでのところ、私の BeginRequest 関数は...

        BindingFlags temp = BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static;


        MethodInfo addStatic = null;
        MethodInfo makeReadOnly = null;
        MethodInfo makeReadWrite = null;


        Type type = application.Request.ServerVariables.GetType();
        MethodInfo[] methods = type.GetMethods(temp);
        foreach (MethodInfo method in methods)
        {
            switch (method.Name)
            {
                case "MakeReadWrite": makeReadWrite = method;
                    break;
                case "MakeReadOnly": makeReadOnly = method;
                    break;
                case "AddStatic": addStatic = method;
                    break;
            }
        }

        makeReadWrite.Invoke(application.Request.ServerVariables, null);
        string[] values = { "LOGON_USER", "test" };
        addStatic.Invoke(application.Request.ServerVariables, values);
        makeReadOnly.Invoke(application.Request.ServerVariables, null);

検索中に、このソリューションは古い IIS では機能するが、IIS 7.0 または 7.5 では機能しないことを読みました。

IIS 7.0 でそれを行う方法について何か考えはありますか?

ありがとう

4

2 に答える 2

1

解決済み:

    HttpApplication application = (HttpApplication)source;
    HttpContext context = application.Context;

    context.User = new GenericPrincipal(new GenericIdentity("test"), null);

new GenericPrincipal(new GenericIdentity("test"), null)LOGON_USER変数に「test」を配置します

詳細はこちら: http://learn.iis.net/page.aspx/170/developing-a-module-using-net/

于 2012-06-20T15:04:16.460 に答える
0

IIS の URL 書き換えモジュールを使用してサーバー変数を設定する場合、設定を許可するサーバー変数を明示的に指定する必要があります。これは、独自のコードにも必要になる場合があります。参照: http://learn.iis.net/page.aspx/686/setting-http-request-headers-and-iis-server-variables/ (および「サーバー変数の変更を許可する」を検索します)

于 2012-06-20T11:42:18.973 に答える