-1
 Response.Write("Request.LogonUserIdentity.Name:" +Request.LogonUserIdentity.Name);
 Response.Write("<br/>");            
 Response.Write("WindowsIdentity.GetCurrent().Name:" + WindowsIdentity.GetCurrent().Name);
 Response.Write("<br/>");

上記のように、匿名のクレデンシャルを使用すると、次のようになります。

Request.LogonUserIdentity.Name:NT AUTHORITY \ IUSR

WindowsIdentity.GetCurrent().Name:IIS APPPOOL \ TestSite

しかし、なりすましの後LoginUserIdentity、同じになります

Request.LogonUserIdentity.Name:NT AUTHORITY \ IUSR

WindowsIdentity.GetCurrent().Name:なりすましID

MSDNによると

LogonUserIdentityプロパティは、現在接続されているユーザーのWindowsIdentityオブジェクトのプロパティとメソッドをMicrosoftインターネットインフォメーションサービス(IIS)に公開します。

なぜloginUserIdentity常に匿名のIDが使用されるのですか?

4

1 に答える 1

0

あなたは認証となりすましを誤解しています、

Property Value

Type: System.Security.Principal.WindowsIdentity
A WindowsIdentity object for the current Microsoft Internet Information Services (IIS) authentication settings.

偽装を有効にするかどうかに関係なく、ログオンユーザーは同じままであるため、Request.LogonUserIdentityは同じままである必要があります。これは明らかに正しく、期待に応えます。

WindowsIdentity.GetCurrentの変更も予想されます。これは、なりすましが原因であるためです。

参照:

http://msdn.microsoft.com/en-us/library/system.web.httprequest.logonuseridentity.aspx

http://msdn.microsoft.com/en-us/library/ms998351.aspx

于 2012-06-28T02:42:00.123 に答える