0

ユーザーがデータベースに保存されるレポートを作成する Web サイトで Windows 認証を使用しています。レポートを保存するときに、どのユーザーがレポートに記入したかを知りたいので、WindowsIdentity の SecurityIdentifier をデータベースに保存して、レポートに記入したユーザーを特定しています。現在の Windows ユーザーの SecurityIdentifier 値を取得するために使用するコードは次のとおりです。

public static string GetCurrentUserSID()
{
    IPrincipal princ = HttpContext.Current.User;
    WindowsIdentity winId = princ.Identity as WindowsIdentity;
    SecurityIdentifier si = winId.User;
    string securityIdentifierValue = winId.User.Value;
    return securityIdentifierValue;
}

質問

  1. ユーザー名やその他の値の代わりに SecurityIdentifier をデータベースに保存することで正しいことをしていますか? この種の状況で従うべきベストプラクティスは何ですか?

  2. 保存した SecurityIdentifier 値からユーザーのユーザー名を取得するにはどうすればよいですか?

4

1 に答える 1

2

ユーザー名を含める必要があります:

HttpContext.Current.User.Identity.Name
于 2010-09-16T16:58:32.120 に答える