2016-05-18 7 views
0

に配置されたときのために、ユーザー情報を検索するMVC5ネット4.6.1Azureの

私は現在、Windowsのログインしているユーザーを取得するために、次のコードがあります:魔法のように

var windowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent(); 
    var value = windowsIdentity.Name;//returns SYSTEMS\\CJones 

ワークスローカルで実行されています。私はAzureに自分のサイトを展開しています。この正確なコードは以下を返します:

azurewebappname_ee6a 

もちろんこれは動作しません。誰も現在ログインしているWindowsユーザーを取得する方法を知っていますので、Azure Webアプリケーションは代わりに検出されません。

答えて

1

はい、サービスプリンシパルのようです。あなたはWeb Appsにデプロイしています。サービスのように、「誰かがログインした」という機能はありません。基本的なOSには接続できません。異なるモデルです。特にWebアプリケーションが共有モードのようなものです。

このような機能を実装する必要がある場合は、仮想マシンの展開がより適切なオプションのように見えます。

+0

これは理にかなっています...私はユーザーを得るためにあらゆる種類の回避策を探しています – BoundForGlory

+0

何のために?シナリオを詳しく教えていただけますか?私は、あなたがWebアプリケーションに入るかもしれないと思うのは、外部から感覚のないサービス主体だからだと思う。 –

+0

精巧なもの?私が望むのは、自分のマシンにログインしている現在のユーザーだけです。それはまっすぐです。私はそれが私が記述した方法を行うことはできませんので、私は別の方法を探しています。あなたが1つ、その罰金を知らない場合。 – BoundForGlory

0

これは、Webアプリケーションが共有モデルになっているためです。このblogで説明されているように、Webアプリケーションにあるレベルの認証を追加する必要があります。次に、適切なAPIを使用してログインしているユーザーのデータを取得します。

認証の統合方法はたくさんありますので、すべての例を示すのは難しいです。あなたが訪問しているインターネットゾーンのURLのようにそれを追加すると、ユーザー名は公開されません。そのため、技術的に短期間では機能しません(あなたが疑問に思った場合のみ)。

+0

ご意見ありがとうございます。私は解決策を見つけた。私は新しいMVCプロジェクトをセットアップし、 "Change Authentication"をクリックしました...私は "仕事と学校"を選択し、私の会社のURIが現れ、VS2015はすべてのOWIN swcurityを行いました。だから私が必要としていたものがいくつかあった。ありがとうございました – BoundForGlory

+0

恐ろしいことに助けられました –

+0

@BoundForGloryの回答を受け入れることはできますか? –

関連する問題