C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[10]: User.Identity.Nameについて


(過去ログ 111 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■65701 / inTopicNo.1)  User.Identity.Nameについて
  
□投稿者/ YMT (1回)-(2013/03/14(Thu) 14:24:17)

分類:[ASP.NET (VB)] 

こんにちは、表題の件について早速ご質問させていただきますが、
よろしくお願いいたします。

イントラネット上にワークグループのIIS7のサーバを構築して(test.aspx)をアップロードしました。

test.aspx の内容は下記のとおりです。

---text.aspx------
Label1.Text を配置
-------------------

----text.aspx.vb----ログオンユーザ情報-----------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Label1.Text = Request.LogonUserIdentity.Name.ToString
End Sub
----text.aspx.vb----------------------------------------

イントラネット上のドメインユーザから test.aspx にアクセスした時、
Label1.text に ドメインユーザのログオン情報ではなく、サーバの「サーバ名\Administrator」になっています。
取得したいのは、test.aspx アクセスしに来たドメインユーザの情報ですが、これは取得できないでしょうか?
わかる方ご伝授ください。よろしくお願いいたします。



引用返信 編集キー/
■65755 / inTopicNo.2)  Re[1]: User.Identity.Nameについて
□投稿者/ websurfer (1回)-(2013/03/16(Sat) 12:50:22)
No65701 (YMT さん) に返信
> イントラネット上にワークグループのIIS7のサーバを構築して(test.aspx)をアップロードしました。
・・・中略・・・
> イントラネット上のドメインユーザから test.aspx にアクセスした時、

WorkGroup 環境なのかドメイン環境(Active Directory を利用した)なのかどっちですか?
問題には関係ないかもしれませんが、正確に書くほうがよろしいかと思います。

> Label1.text に ドメインユーザのログオン情報ではなく、サーバの「サーバ名\Administrator」になっています。

匿名認証も有効になってませんか? その場合、Request.LogonUserIdentity.Name は匿名ユーザーIDになります。
引用返信 編集キー/
■65781 / inTopicNo.3)  Re[2]: User.Identity.Nameについて
□投稿者/ YMT (2回)-(2013/03/18(Mon) 10:14:49)
websurfer様

ご回答どうもありがとうございます。

IIS7.0サーバーは(Workgroup)です。

ユーザは(ドメイン環境(Active Directory を利用)です。


また、開発環境はドメイン環境で、
デバッグモードでは ログオン中のドメイン名とユーザIDが表示されています。
http://localhost:xxxxx/test.aspx)→ domain\user


(http://test.com/test.aspx)→ サーバ名\Administrator

となります。


Web.config でなにか設定しないといけないでしょうか?

iis7の認証設定では Windows認証のみ有効となっていました。


どのように設定すれば、「ドメイン環境(Active Directory を利用)」のユーザのドメイン名とユーザIDが表示されるのでしょうか?

ご教示のほどよろしくお願いいたします。


No65755 (websurfer さん) に返信
> ■No65701 (YMT さん) に返信
>>イントラネット上にワークグループのIIS7のサーバを構築して(test.aspx)をアップロードしました。
> ・・・中略・・・
>>イントラネット上のドメインユーザから test.aspx にアクセスした時、
>
> WorkGroup 環境なのかドメイン環境(Active Directory を利用した)なのかどっちですか?
> 問題には関係ないかもしれませんが、正確に書くほうがよろしいかと思います。
>
>>Label1.text に ドメインユーザのログオン情報ではなく、サーバの「サーバ名\Administrator」になっています。
>
> 匿名認証も有効になってませんか? その場合、Request.LogonUserIdentity.Name は匿名ユーザーIDになります。
引用返信 編集キー/
■65798 / inTopicNo.4)  Re[3]: User.Identity.Nameについて
□投稿者/ WebSurfer (12回)-(2013/03/18(Mon) 20:16:15)
No65781 (YMT さん) に返信
> IIS7.0サーバーは(Workgroup)です。
>
> ユーザは(ドメイン環境(Active Directory を利用)です。

Web サーバーもドメインに入れて、統合 Windows 認証で、シングルサインオンにすればすべての問題は解消すると思いますが。

Web サーバーをドメインに入れられない理由があるのでしょうか?

引用返信 編集キー/
■65813 / inTopicNo.5)  Re[4]: User.Identity.Nameについて
□投稿者/ YMT (3回)-(2013/03/19(Tue) 08:57:37)
WebSurfer様

ご回答どうもありがとうございます。

Web サーバーをドメインに入れられない理由ですが、
複数ドメイン環境(複数グループ会社)がイントラネット上に存在し、
それらは信頼関係されていないため、

Webサーバはそれら(複数ドメイン環境のユーザから)アクセスできるセグメントに設置してあります。
 test.aspx の目的は、どこのドメインのユーザかを表示できるようにしたい。

よろしくお願いいたします。


No65798 (WebSurfer さん) に返信
> ■No65781 (YMT さん) に返信
>>IIS7.0サーバーは(Workgroup)です。
>>
>>ユーザは(ドメイン環境(Active Directory を利用)です。
>
> Web サーバーもドメインに入れて、統合 Windows 認証で、シングルサインオンにすればすべての問題は解消すると思いますが。
>
> Web サーバーをドメインに入れられない理由があるのでしょうか?
>
引用返信 編集キー/
■65824 / inTopicNo.6)  Re[5]: User.Identity.Nameについて
□投稿者/ WebSurfer (13回)-(2013/03/19(Tue) 20:51:55)
No65813 (YMT さん) に返信
> Web サーバーをドメインに入れられない理由ですが、
> 複数ドメイン環境(複数グループ会社)がイントラネット上に存在し、
> それらは信頼関係されていないため、
>
> Webサーバはそれら(複数ドメイン環境のユーザから)アクセスできるセグメントに設置してあります。
>  test.aspx の目的は、どこのドメインのユーザかを表示できるようにしたい。

Web サーバーをドメインに入れられないのであれば Windows 認証では
無理だと思います。(不可能ではないかもしれませんが、Web サーバー
のローカル Windows アカウントに全ユーザーを登録するというような
非現実的な方法しかなさそうです)

フォーム認証を使って、そのユーザー情報として Active Directory の
ドメインユーザー情報を利用するという方法があります。ただし、これ
も、信頼関係のない複数のドメインコントローラーから情報を取得しなけ
ればならない今回のケースでは無理そうですが。以下のページに詳細が
ありますので検討してみてください。

フォーム認証と Visual Basic .NET を使用して Active Directory に
対する認証を行う方法
http://support.microsoft.com/kb/326340/ja


上記がダメだとすると、残る手段は、フォーム認証を利用し、ユーザー
ID をドメインユーザーアカウント名と同じにすることぐらいでしょうか。
ASP.NET ベースの Web アプリということはデータベースサーバーも利用
できると思いますが、そうであれば比較的容易にフォーム認証を実装で
きるはずです。

引用返信 編集キー/
■65883 / inTopicNo.7)  Re[6]: User.Identity.Nameについて
□投稿者/ YMT (4回)-(2013/03/21(Thu) 18:06:51)
WebSurfer様

ご回答どうもありがとうございます。

いろいろと難しいそうですね!!

vbsでは下記のようにできるのに、Webアプリではできないでしょうか?

Option Explicit

Dim objNetWork
Set objNetWork = WScript.CreateObject("WScript.Network")
'@ドメイン名
WScript.echo "UserDomain = " & objNetWork.UserDomain
'Aユーザ名
WScript.echo "UserName = " & objNetWork.UserName

なにか出来る方法引き続きご教示のほどよろしくお願いいたします。

No65824 (WebSurfer さん) に返信
> ■No65813 (YMT さん) に返信
>>Web サーバーをドメインに入れられない理由ですが、
>>複数ドメイン環境(複数グループ会社)がイントラネット上に存在し、
>>それらは信頼関係されていないため、
> >
>>Webサーバはそれら(複数ドメイン環境のユーザから)アクセスできるセグメントに設置してあります。
>> test.aspx の目的は、どこのドメインのユーザかを表示できるようにしたい。
>
> Web サーバーをドメインに入れられないのであれば Windows 認証では
> 無理だと思います。(不可能ではないかもしれませんが、Web サーバー
> のローカル Windows アカウントに全ユーザーを登録するというような
> 非現実的な方法しかなさそうです)
>
> フォーム認証を使って、そのユーザー情報として Active Directory の
> ドメインユーザー情報を利用するという方法があります。ただし、これ
> も、信頼関係のない複数のドメインコントローラーから情報を取得しなけ
> ればならない今回のケースでは無理そうですが。以下のページに詳細が
> ありますので検討してみてください。
>
> フォーム認証と Visual Basic .NET を使用して Active Directory に
> 対する認証を行う方法
> http://support.microsoft.com/kb/326340/ja
>
>
> 上記がダメだとすると、残る手段は、フォーム認証を利用し、ユーザー
> ID をドメインユーザーアカウント名と同じにすることぐらいでしょうか。
> ASP.NET ベースの Web アプリということはデータベースサーバーも利用
> できると思いますが、そうであれば比較的容易にフォーム認証を実装で
> きるはずです。
>
引用返信 編集キー/
■65884 / inTopicNo.8)  Re[7]: User.Identity.Nameについて
□投稿者/ WebSurfer (20回)-(2013/03/21(Thu) 18:49:20)
No65883 (YMT さん) に返信
> vbsでは下記のようにできるのに、Webアプリではできないでしょうか?

できません。

> なにか出来る方法引き続きご教示のほどよろしくお願いいたします。

先に回答したとおりです。もう一回書きます。

上記がダメだとすると、残る手段は、フォーム認証を利用し、ユーザー
ID をドメインユーザーアカウント名と同じにすることぐらいでしょうか。
ASP.NET ベースの Web アプリということはデータベースサーバーも利用
できると思いますが、そうであれば比較的容易にフォーム認証を実装で
きるはずです。

引用返信 編集キー/
■65910 / inTopicNo.9)  Re[8]: User.Identity.Nameについて
□投稿者/ YMT (5回)-(2013/03/22(Fri) 14:34:57)
WebSurfer様

ご回答どうもありがとうございます。

本当にしつこくて申し訳ありませんが、
どうしても現在ログイン中のユーザ情報(ドメイン名とユーザID)でデータベースと照合して、
ユーザの判別をしたいので、いろいろしらべたら、最悪(ユーザID)だけでも取得できないか?

たとえば、http://jp.msn.com/ など にアクセスすると

ローカルに(Cookie:xxx@www.msn.com/)
[xxxはログインID]

が何も入力せずに自動的に保存されています。
その仕組みをしらべているが、初回利用時に、IDなどを入力してのやり方はあるが、
自動的に保存される方法がなかなか見つかりません。

なにかご存知でしたら、教えていただきたくよろしくお願いいたします。

諦め悪くて申し訳ありませんが、よろしくお願いたします。

No65884 (WebSurfer さん) に返信
> 先に回答したとおりです。もう一回書きます。
>
> 上記がダメだとすると、残る手段は、フォーム認証を利用し、ユーザー
> ID をドメインユーザーアカウント名と同じにすることぐらいでしょうか。
> ASP.NET ベースの Web アプリということはデータベースサーバーも利用
> できると思いますが、そうであれば比較的容易にフォーム認証を実装で
> きるはずです。
>
引用返信 編集キー/
■65919 / inTopicNo.10)  Re[9]: User.Identity.Nameについて
□投稿者/ WebSurfer (21回)-(2013/03/22(Fri) 22:07:28)
No65910 (YMT さん) に返信
> WebSurfer様
> たとえば、http://jp.msn.com/ など にアクセスすると
>
> ローカルに(Cookie:xxx@www.msn.com/)
> [xxxはログインID]
>
> が何も入力せずに自動的に保存されています。
> その仕組みをしらべているが、初回利用時に、IDなどを入力してのやり方はあるが、
>
> 自動的に保存される方法がなかなか見つかりません。

それは前のレスで紹介したフォーム認証の仕組みで、サーバー側にフォーム認証の機能を構築してあるから認証クッキーが発行されているのです。

認証クッキーを「永続化」するとブラウザはクッキーを HDD に保存します。永続化については以下のページを見てください。

Froms 認証クッキーの永続化
http://surferonwww.info/BlogEngine/post/2011/12/03/Persistent-or-non-persistent-Forms-authentication-cookie.aspx


ASP.NET フォーム認証の仕組みをよく分かってないようですので、本など読んで勉強して知識を付けてください。でないと、掲示板では話が通じなくて空回りするばかりです。

引用返信 編集キー/
■65965 / inTopicNo.11)  Re[10]: User.Identity.Nameについて
□投稿者/ Mira (1回)-(2013/03/27(Wed) 12:40:56)
出来るかどうかはわからないのですが(試してください)

複数あるDomainが互いに信頼関係にできないのであれば

WebServer用のDomainを作ってそれと現在ある複数のDomain間で信頼関係を作ってみたらどうでしょうか?

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -