2017-01-15 10 views
0

他の同様の質問があることは知っていますが、答えのどれも私を助けませんでした。 サーバー上のIISでホストされているASP.NET Webアプリケーションがあります。 サーバーには、Windowsユーザー名を持つWindowsオペレーティングシステムがあります(ServerDomain/ServerUserName)。 私はMain.aspxページを持っています。asp.net Webアプリケーションを閲覧しているクライアントのウィンドウのユーザー名を取得します。

<a href="#" class="linkbutton" onclick="resendHandle(this)">Resend</a> 

ページは、スクリプトタグを持っており、そこに私はJavaスクリプト機能があります:

function resendHandle(el) { 
     var clientWindowsName = ? 
     alert(clientWindowsName); 
     setCurrentUser(clientWindowsName)); 
     submit(); 
} 

今すぐクライアントを想定、またしてWindowsオペレーティングシステムを持っているページはリンクタグを持っていますWindowsユーザー名:ClientXDomain/ClientXUserNameが自分のサイトを参照しています。 Resendリンクをクリックすると、コントロールはresendHandle Java Script関数に、Main.aspx.csの(コードファイルの背後にある)Resendメソッドに "submit"した後に流れます。このメソッドでは、ClientXDomain/ClientXUserNameというクライアントウィンドウのユーザー名を取得します。明らかに、aspx.csはサーバーコードなので、このメソッドでユーザーIDをチェックすると、ServerDomain/ServerUserNameが取得されます。しかし、私が言及したように、私はこのメソッドでClientXDomain/ClientXUserNameを取得したい。 clientWindowsNameはsetCurrentUserの助けを借りてサーバーメソッドからアクセスされるため、clientWindowsName変数の値(resendHandle Javaスクリプト関数内)をサーバーサイズに転送することは問題ありません。 問題が

alert(clientWindowsName); 

はいつものために私のためにNULLを返すということです。

var clientWindowsName = '<%=Page.User.Identity.Name%>'; 

およびその他のオプションについては、私が試しました。それはNT AUTHORITYIUSRに警告

var clientWindowsName = '<%=Request.LogonUserIdentity.Name.ToString()%>'; 

:だけのために 。

しかし、どのオプションも私に希望のユーザー名(ClientXDomain/ClientXUserName)を与えてくれません。

どうすれば入手できますか? Java Script関数内で値を取得しようとしていることに注意してください。おそらく、スクリプトタグの外で行うようにしてください。ありがとう!

EDIT 01:私のウェブの設定が含まれています

<authentication mode="Windows"/> 
+0

私の答えが役に立つと願っていますか?私たちはプロジェクトでこれを使用しており、Windows認証となりすましの両方を使用する必要があります –

答えて

0

ログオンしたユーザーIDを取得するのに役立つ偽装を有効にします。 web.config内の 、またはIISサーバー上で設定することができます。設定方法を確認してください。しかし、これはあなたが欠けているものです。

<identity impersonate="true" /> 

こんにちは、ユーザーがアクティブディレクトリにある場合は、その後の彼のアイデンティティはそうでなければ、それはIISでホストされているアカウントのIDを取得するコードに渡すことができるだけでなく、このように偽装を設定する必要があります。

https://msdn.microsoft.com/en-us/library/aa292118(v=vs.71).aspx

0

のように、私は匿名認証を無効にしなければならなかった、あなたがWindows認証の代わりに、フォーム認証を使用してウェブサイトを設定する必要があると思います。

関連する問題