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

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

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

Environment.​User​Name での取得データ

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

■89715 / inTopicNo.1)  Environment.&#8203;User&#8203;Name での取得データ
  
□投稿者/ falcon (1回)-(2018/12/18(Tue) 00:05:40)

分類:[C#] 

Visual Studio 2012
C#
Windows10 Pro

----

はじめまして。

上記の環境でプログラミングを行っております。
ユーザー名を取得するのに以下の様なコードで取得しようとしています。

using System;

class Sample
{
public static void Main()
{
 string uName = Environment.UserName; // ユーザー名
}
}

ログイン後であれば、ログインしているユーザー名が当然ながら取得できるのですが
ログイン前(ユーザー選択の画面)の場合に実行してみると「SYSTEM」というユーザー名が取得できました。

ここで質問なのですが、Environment.UserName を利用して、ログイン状態であるか否かを判断するのに
 得られたユーザー名が SYSTEM である = ログイン前
 得られたユーザー名が SYSTEM でない = ログイン後
という判断をしても問題ないでしょうか?

また、windows環境であれば、ログイン前は必ず SYSTEM というユーザー名となるのでしょうか?
それとも SYSTEM 以外のユーザー名が返されたりするのでしょう?

皆様、宜しくお願い致します。



引用返信 編集キー/
■89718 / inTopicNo.2)  Re[1]: Environment.&#8203;User&#8203;Name での取得データ
□投稿者/ とっちゃん (560回)-(2018/12/18(Tue) 11:50:45)
No89715 (falcon さん) に返信
> ログイン後であれば、ログインしているユーザー名が当然ながら取得できるのですが
> ログイン前(ユーザー選択の画面)の場合に実行してみると「SYSTEM」というユーザー名が取得できました。
>
ログイン前に実行というのはどうやって実行していますか?
それによってアカウントが変わってくるはずです(いくつか実行パターンがある)。

> ここで質問なのですが、Environment.UserName を利用して、ログイン状態であるか否かを判断するのに
>  得られたユーザー名が SYSTEM である = ログイン前
>  得られたユーザー名が SYSTEM でない = ログイン後
> という判断をしても問題ないでしょうか?
>
> また、windows環境であれば、ログイン前は必ず SYSTEM というユーザー名となるのでしょうか?
> それとも SYSTEM 以外のユーザー名が返されたりするのでしょう?
>
いえ。
どうやって実行したのか?で変わります。
ログイン状態で実行されるような状況であっても実行方法によってログインアカウントとは
別のアカウントで実行させることができます。

もちろん、ログインしていない状態でも同様です。


アプリケーションの種類というよりは、
どういう条件で実行したのか?どこから実行したのか?
ということがわからないとアカウントを特定することはできません。

最も、タスクスケジューラ経由だったりすると好きなアカウントで動かせるので特定はほぼ不可能だったりしますが。。。w

引用返信 編集キー/
■89724 / inTopicNo.3)  Re[2]: Environment.&#8203;User&#8203;Name での取得データ
□投稿者/ WebSurfer (1715回)-(2018/12/18(Tue) 14:57:17)
マルチポストのようですので、他のポスト先の URL を貼っておきます。

https://teratail.com/questions/164537

そちらで話は終わっているようです。
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ