2011-11-11 14 views
0

ASP.NET MVC3 newbここに。データベースにWindowsユーザー名を追加する

Windows認証を使用するMVC3イントラネットアプリケーションで作業しています。 Windowsの認証がセットアップされ、問題なく動作します。

ユーザーが最初にこのアプリケーションにアクセスしてその情報をデータベースに格納し、その名前を別の一意の識別子(数値)に関連付けるたびに、ユーザー名(Domain \ first.last)を取得する必要があります。自動インクリメント)。

私はすでに、ユーザー名を取得する方法を見つけました:

string user = WindowsIdentity.GetCurrent().Name; 

私はその変数を取り、自分のデータベースに格納されて問題が生じています何。

参考になるリソースへのヒント、ヒント、ヒント、ナッジがあれば幸いです。

このシナリオが他の場所に掲載されていた場合にはお詫び申し上げます。

乾杯!

答えて

0

ここで探しているのは、実際には「データベースに情報を保存する方法」です。 どのデータベースシステムですか?

チェックアウト http://www.datasprings.com/resources/articles-information/a-quick-guide-to-using-entity-framework

あなたは簡単に私はあなたの質問は本当にについてだったと思う何をしているデータベースにその値を保存するために、エンティティフレームワークを使用することができます。私はBryanmacに同意しますが、名前が変更された場合にはログイン名ではなくSIDを保存する必要があります。 NEVERが変更されていることが分かっていれば、名前を保存できますが、Windowsで技術的に変更できるので、これを認識しています。 Entity Frameworkを使用してフィールドを格納する方法について具体的な質問がある場合は、それを投稿してください。

+0

あなたは正しいです!私はこの問題について詳しく説明しようとしていたが、まあうまくいった。ええ、基本的には、その情報をデータベースにマップする方法を探したかったのです。私は@bryanmacに耳を傾け、あなたが投稿したリンクを見てみるだけでなく、sidの使用について助言します。どうもありがとうございました! – Fuel

2

注意 - ユーザー名と表示名が変更されることがあります。私はデータベースにそれらを格納することを避けるだろう。

代わりに、SID(ユーザーのID)を保存してください。 WindowsIdentityのUserプロパティはSIDを返します。表示の目的でユーザー名を保存して更新することはできますが、認証ユーザーをDB内の前のユーザーに戻すことには依存しません。

これはSOにも投稿を参照してください:

How can I get the SID of the current Windows account?

は、(表示のみのユーザー名と一緒に)SIDを持続し、SIDを経由して見上げます。

+0

ありがとう@bryanmac!それは本当に多くの助けになります。私はあなたと@Adam Tuliperが投稿したもので必要なものを達成できるはずだと思います。再度、感謝します! – Fuel

0

MVC3アプリケーションを作成する際には、「イントラネットアプリケーション」のオプションがあり、Windows認証のすべての機能が既に動作しています。チェックアウトして現在のプロジェクトのコードを引き継ぐことができますあなたがどれほど遠くにあるかに応じてあなたが持っているものを移行する)。

Web.Configに追加された特別なコードと追加のファイルがあります。

もっとここで読む:

http://weblogs.asp.net/gunnarpeipman/archive/2011/04/14/asp-net-mvc-3-intranet-application-template.aspx

、ここで:

http://msdn.microsoft.com/en-us/library/gg703322%28VS.98%29.aspx

また、あなたのウェブサイトを見ている人を参照するためにUser.Identity.Nameを使用したいと思います。

関連する問題