2016-10-21 9 views
1

私は顧客のために開発したアプリケーションでは、現在のユーザーの詳細を取得する必要があります。 次に、「ドメイン\ログイン」というカップルを、許可されたすべてのユーザーを含むテーブルと比較して権利を割り当てる必要があります。UWP:ユーザーに権限を与えるために現在のユーザー名を取得

私は詳細を取得するために公式のサンプル(UserInfo)と混合されていること@Sergiuコジョカルhereによって与えられたコード、再利用:

IReadOnlyList<Windows.System.User> users = await Windows.System.User.FindAllAsync(); 

var current = users.Where(u => u.AuthenticationStatus == Windows.System.UserAuthenticationStatus.LocallyAuthenticated && 
           u.Type == Windows.System.UserType.LocalUser).FirstOrDefault(); 

// user may have username 
var data = await current.GetPropertyAsync(KnownUserProperties.AccountName); 
string displayName = (string)data; 

// or may be authenticated using hotmail/outlook 
if (string.IsNullOrEmpty(displayName)) 
{ 
    string firstName = (string)await current.GetPropertyAsync(KnownUserProperties.FirstName); 
    string lastName = (string)await current.GetPropertyAsync(KnownUserProperties.LastName); 
    displayName = string.Format("{0} {1}", firstName, lastName); 
} 

をしかし、実際に私は「firstNameの」を取得し、 「lastName」から「KnownUserProperties」に変更します。他のプロパティは空にされている:

  • providerNameで:ヌル
  • アカウント名:ヌル
  • guestHost:ヌル
  • principalnameと:ヌル
  • domainNameを:ヌル
  • SIPURI:ヌル

=>これは正常ですか?

問題が予想されるカップル「ドメイン\ログインは」その「firstNameの」と同じ結果を与えるものではありません、コマンドライン「whoamiは」、の結果に基づいていることです"lastName"

=>アプリで同じ結果を得る方法はありますか?

私はHotmailアカウントを使用しますが、お客様のアカウントをActive Directoryに基づいていなければならないことを指定:ドメインとドメインユーザーに関する情報を取得するには...これは何も変更するかどうかはわからない

+0

ユーザーのユーザー名を使用する場合は、次のURLをチェックしてください。http://stackoverflow.com/questions/39949829/uwp-get-path-to-user-download-folder/39972084#39972084 – GeralexGR

+1

ありがとうございますが、これは私が必要とするものではありません。これはユーザー名だけを提供しますが、ドメインは提供しません。 –

+0

domainNameとsipUriについては私の側にあります。ドメインに参加しましたか? –

答えて

0

を私の側の結果に

var data = await current.GetPropertyAsync(KnownUserProperties.AccountName); 

var data = await current.GetPropertyAsync(KnownUserProperties.DomainName); 

にを変更することです: RO M.EUROPE.TECHTEAM.COM \ scojocar

+0

ありがとう@Sergiu Cojocaru。 しかし、最初の記事で触れたように、私はUserInfoサンプルで提供されているソリューションを使用しようとしました。KnownUserPropertiesの利用可能なすべてのプロパティは回復されましたが、FirstNameとLastNameだけが値を持ちます。 私はWindowsにログインするために個人のOutlookアカウントを使用しているわけではありません。最終的な顧客がこれらを使用する必要があるので、Active Directoryアカウントとは異なるでしょうか? –

+0

個人アカウントを使用すると、あなたの氏名と姓があなたのデータで満たされます。ドメインにいるときは、姓と名字は空で、DomainNameプロパティにはドメイン名とユーザー名に関するデータが含まれます –

+0

結果は普通?しかし、 "host \ username"というコマンドラインで "whoami"というコマンドを使って "host"の詳細を調べるにはどうすればいいですか? –

関連する問題