1

REMOTE_USER 値をクエリ文字列に追加する URL 書き換えルールを作成する必要があります。私は自分のアプリを絶対的な必需品にまで単純化しました。ただし、ルール条件が評価されている間、REMOTE_USER は常に空です。

私の Web サイトは IIS 7 で構成されており、アプリ プールは .NET 2.0 との統合モードを使用しています。IISマネージャーを介してサイトで匿名認証を無効にし、Windows認証を有効にし、匿名アクセスを防ぐためにweb.configに行を追加しました。これが私の2つのファイルです。

web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer> 
        <security> 
            <authorization> 
                <remove users="?" roles="" verbs="" />
            </authorization>
        </security>
        <rewrite>
            <rules>
                <clear />
                <rule name="Add login into URL" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                        <add input="{QUERY_STRING}" pattern="login" negate="true" />
                        <add input="{REMOTE_USER}" pattern="(.*)" />
                    </conditions>
                    <action type="Redirect" url="{HTTP_URL}?login={C:1}" redirectType="Temporary" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

デフォルト.asp

<%= Request.ServerVariables("REMOTE_USER") %>

条件が評価されるときに {REMOTE_USER} が常に空白であるため、私のルールはヒットしません (他のサーバー変数がルールに表示されるため、{REMOTE_USER} のみになります)。ねじれは、default.asp が私の REMOTE_USER 値を表示することです。

なぜこれが起こったのですか?ありがとうございました

4

2 に答える 2

1

なぜ以前にこのリンクを見つけられなかったのかわかりません。私が疑ったように、auth は URL 書き換えルールの後に実行され、REMOTE_USER を使用してリダイレクトすることはできません。独自のリダイレクト モジュールを作成する必要があると思います。

http://forums.iis.net/t/1155169.aspx/1

于 2013-03-21T14:21:32.380 に答える
0

それで、これを解決しましたか?

どうやら、ServerVariablesは一部のインスタンスで C# に対して減価償却されているようです。

その場合は、次のようにする必要があります。

string login = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

本当に ServerVariables を使用したい場合は、C#ではケース センシティブであることを覚えておいてください。ほとんどの場合、正しい大文字と小文字の区別はUPPERであり、そのリストは次のとおりです。

サーバー変数のリスト

于 2013-06-26T13:58:42.397 に答える