Silverlightで現在ログインしているユーザーのユーザー名を取得できますか?ユーザーにはWindows OSがあり、SilverlightアプリケーションはInternet Explorerでホストされていると想定できます。 ASP.NETでサーバー側からIDを取得することはできません。このSilverlightアプリケーションは静的HTMLファイルでホストされます。Silverlightで現在のWindowsユーザー名を取得
答えて
残念ながら、私はそれが可能ではないと思います。
Windows OS/IEと見なすことができますが、Silverlight自体は確かにこれを想定していませんので、通常は現在のログオンユーザーの名前を取得するために通常使用できる通常の.NETメカニズムのほとんどはSilverlightアプリケーションで使用できるフレームワークのサブセット内に存在します。
ie。
System.Net.CredentialCache.DefaultCredentials
System.Security.Principal.WindowsIdentity.GetCurrent().Name
Environment.UserName
は、Silverlightアプリケーションでは使用できませんが、Windowsフォームアプリケーションでは、これらの各メカニズムを使用できます。
実際、SilverlightアプリケーションがWindows/IEプラットフォームの上で動作することは保証されていないので、それは理にかなっていると思います。
ところで、この質問にもこっちに頼まれた:
Current Windows Username and Domain
とそのスレッドは、これを達成するためのネイティブ方法がないことを確認しているようです。スレッドは次に、Silverlightアプリケーションを「ホスティング」しているASP.NETページから現在のASP.NETユーザー名を「注入」するよう提案します。クライアントのマシンのコンテキストで実行する前に、Silverlightアプリケーション自体に追加する必要があります。もちろん、たとえこれが機能しても、ASP.NETのフォームまたはWindowsベースの認証のいずれかからASP.NETユーザー名が得られ、ではなく、クライアントコンピュータの現在ログオンしているユーザーのWindowsユーザー名が与えられます。
本によると、JavaScriptでそのことはできません投稿、私は運のあなたのアウトを考える:それを行うには現実的な方法がないよう http://bytes.com/topic/javascript/answers/616501-how-get-windows-username-using-javascripts
が鳴ります。
実際に私たちは最初にJavaScriptソリューションを探していましたが、それはうまくいきました。しかし、それは理想的ではない遠隔地のセキュリティダイアログを受け入れる必要があります。 – huseyint
このようにして管理することができます。
1)asp.net Webサービスアプリケーションを作成します。
2)Silverlightアプリケーションから呼び出すWebサービスとメソッドを実装します。
[WebMethod]
public string GetClientUserName()
{
return System.Web.HttpContext.Current.User.Identity.Name.ToString();
}
3)このWebサービスアプリケーションをWebサーバーにデプロイします。匿名ユーザーがこれにアクセスすることを許可しないでください。
4)このサービスをSilverlightアプリケーションに追加します。 (サービス参照の追加)
5)このメソッドを呼び出して、Silverlightアプリケーション全体からユーザー名を取得できます。
私はこのコードを共有すると思っていましたが、これはうまくいくようです(YMMV)。それはCraigTPの答えと彼が提供した彼のリンクに触発されています。私はこれが静的なWebページで実行することについての部分に直接答えないことを知っていますが、OPはAPSXの妥協を受け入れたようです。私のSilverlight C#のコードで
<head>
<!-- ...snip... -->
<script runat="server" language="c#">
void Page_Load()
{
this.UsernameField.Value = User.Identity.Name;
}
</script>
</head>
<body>
<input type="hidden" ID="UsernameField" runat="server" />
<!-- ...snip... -->
</body>
:Silverlightをホストする私のASPXページで
は
private string GetCurrentUserName()
{
HtmlDocument doc = HtmlPage.Document;
if (doc == null)
{
return string.Empty;
}
HtmlElement elm = doc.GetElementById("UsernameField");
if (elm == null)
{
return string.Empty;
}
return elm.GetAttribute("value");
}
これはうまくいくように見えますが、このメカニズムをSSO認証などのセキュリティに頼ることはできません。 – Thorarin
@ Thorarin:これは、Windows/NegotiateやNTLM(SSOのために考えているもの)の認証や基本的にはうまく動作します。ここでは、ユーザー名をSilverlightクライアントに戻しているだけです。 Silverlightでこの情報を使用したことは、やや疑わしいものです。あらゆるタイプの認証/認可作業は、SLがそのようにサンドボックス化されている場合、通常はサーバー上で実行されます。しかし、私は全体の話を知らないので、これをしないようOPに言いません。加えて、OPは創造的なハッキングを探しているようだ。 – Aardvark
は非常に私を助けていなかったこの質問への答えを可決しました。 ASP.NET Webサービスを使用して
が、これはしかし、働いていた:
string userName =
System.ServiceModel.ServiceSecurityContext.Current.WindowsIdentity.Name;
そして、このブログのエントリは正しい道に私を設定するものです。
ServiceReferences.ClientConfigこの必要があります:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding ...>
<security mode="TransportCredentialOnly" />
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
web.configが必要ですSこの:
<system.web>
<authentication mode="Windows" />
<identity impersonate="false" />
</system.web>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding ...>
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
ものは、私が以前にIISでWebサービスへの匿名アクセスを使用それ以外の作業Silverlightアプリケーションを作るために必要な唯一の注目すべき変化があります。
その後、+1 'system.web'は必須です!それを強調してくれてありがとう... – Legend
@MichaelMaddox - あなたのリンクが壊れていた、私は先に進み、それを更新しました。 –
Environment
.GetFolderPath(Environment.SpecialFolder.Personal)
.Split(new[] { '\\' }, StringSplitOptions.RemoveEmptyEntries)[2];
ランタイムエラー:アクセスが拒否されました。 –
// System.IO.Path.DirectorySeparatorCharを使用してコードマーベリックの答えの小さな改善ではなく// //
環境 .GetFolderPath(Environment.SpecialFolder.Personal) .Split(新[] {System.IO.Path.DirectorySeparatorChar}、StringSplitOptions.RemoveEmptyEntries)[2];
- 1. Windows認証 - 現在のユーザー名を取得する
- 2. 現在のユーザーの名前を取得
- 3. 現在のアドインユーザーのユーザー名を取得
- 4. SilverlightでWindowsの現在のユーザー名を取得するにはどうすればよいですか?
- 5. Windowsで現在のユーザーのホームディレクトリを取得する方法
- 6. Windows 7で現在のシステムボリュームを取得
- 7. AWS Lambdaで現在のユーザー名を取得する方法は?
- 8. Keycloakで現在のユーザー名を取得するには?
- 9. MSプロジェクトで現在のユーザーを取得
- 10. TagHelperで現在のユーザーを取得
- 11. 現在のWindowsユーザーを取得するVB.net
- 12. Windowsスペシャルフォルダの現在の名前を取得
- 13. Silverlight 2.0で現在のユーザー名を取得するにはどうすればよいですか
- 14. Julia(Linux)の現在のユーザー名を取得
- 15. OAuthから現在のユーザー名とパスワードを取得
- 16. Game Centerから現在のユーザー名を取得する方法
- 17. Windowsサービス - 現在のディレクトリを取得
- 18. DotNetNukeの現在のユーザーを取得
- 19. エリクシールガーディアンモデルの現在のユーザーを取得
- 20. Jhipster:NavBarComponentの現在のユーザーを取得
- 21. WinRTの現在のユーザーを取得
- 22. PHPからの現在のActive Directoryユーザー名の取得
- 23. ログインページから現在のユーザーを取得
- 24. Ionic Firebase。現在のユーザーを取得
- 25. Episerver、ユーザーに現在の「ワークアイテム」を取得
- 26. Facebook C#SDK現在のユーザーを取得
- 27. Angular2 Firebase現在のユーザーを取得
- 28. MVC 5現在のユーザーRoleNamesを取得
- 29. ユーザーに現在のapprequestsを取得
- 30. Angular-Fullstack現在のユーザーを取得
ニース答えwihtoutそれを得ることができる方法です! – huseyint