2017-01-18 3 views
0

私は過去数日間、私のASPアプリケーション(devexpress xafを使用して開発されました)で現在のユーザーを取得する方法について多くの提案を読んだことがありますが、 。aspアプリケーションのWindowsIdentityは、常にNT AUTHORITY SYSTEMを返します。

WindowsIdentity.GetCurrent().Name 

の戻り値は常にNT AUTHORITY \ SYSTEMです。 私はthisのような提案を出し、devexpressフォーラムでカップルを見つけました。

に私のアプリのWeb.configを

  • に設定されている何私が作業する必要があると思ってきました

    は(私もに上記imporsonationを設定しようとしました

    <system.web> 
        <authentication mode="Windows" /> 
        <identity impersonate="true" /> 
        <authorization> 
         <deny users="?" /> 
         <allow users="*" /> 
        </authorization> 
        </system.web> 
    

    が含まれます偽であるが変更なし)

    • Windows認証 enter image description here

      • この

    enter image description here

    のようにアプリケーションプールを設定するしかし、結果は常にNT AUTHORITY \システムのまま使用するIISで、私のサイトを設定します。

答えて

0

"NT AUTHORITY \ SYSTEM"は "Builtin \ Administrator"のメンバであるため、SYSADMINサーバーロールはデフォルトで付与されます。 既定では、ローカルシステムアカウントはローカルのAdministratorsグループのメンバであるため、SQL Serverのsysadminグループのメンバです。

偽装を有効にするには、web.configのidentity要素にimpersonate = "true"を設定します。

<system.web> 
    <identity impersonate="true" /> 
</system.web> 

IISから偽装を有効または無効にすることもできます。

  1. は、IISで「認証」アイコンを
  2. ダブルクリックしてWebアプリケーションを選択し
  3. 選択ASP.NET偽装
  4. クリックして右側のパネルで、アクション下のリンクを「有効」「無効」またはIISで。
  5. これにより、web.configファイルが自動的に変更されます。

DefaultAppPoolの「Managed pipeline mode」を「Classic」に設定します。

は、アプリケーションコードは、今の代わりに、「NT AUTHORITY \ IUSR」アカウントを使用して、実行されたアプリケーションを実行し、それを気づか「IIS APPPOOL \のDefaultAppPool」

+0

ありがとう、しかしとしては、上記のスクリーンショットで見ます私は既に偽装を有効にしています。また、コードスニペットをより明確に編集しました。管理パイプラインモードをClassicに変更しようとしましたが、NT AUTHORITY \ SYSTEMを取得します。 NT AUTHORITY \ IUSRアカウントが使用されていることをどこで確認できますか? – yiannis

+0

このリンクを参照してください.http://csharp-video-tutorials.blogspot.in/2012/12/anonymous-authentication-and-aspnet.html –

関連する問題