1

午後の皆さん、

誰がデータベース テーブルにレコードを挿入しているかを知る必要がある Web サイトがあります。Active Directory (AD) グループに入力したユーザーのグループがあり、サイトにアクセスできる唯一のメンバーです。(以下の web.config コードと .vb コードを参照)

'構成ファイル

     <appSettings>
           <add key="dbConnection" value="Data Source=xxx;Initial Catalog=xxx;User ID=xxx;Password=xxx;"/>
           <add key="Users" value="Users_General_Access"/>
     </appSettings>

'Vb コード

    If User.IsInRole(ConfigurationManager.AppSettings("Users")) Then

    Else
        Response.Redirect("NotAuthorised.aspx")
    End If

フォーム フィールドからデータベースにデータを挿入するために使用されるストアド プロシージャがあり、正常に動作します。

私が抱えている問題は、ADセットアップを介してログインできるため、ユーザーにログインを求めていないことです。ただし、ユーザー名をキャプチャする必要があるため、これをデータベーステーブルに入力して、そのレコードを追加したユーザーを示すことができます。

この情報を取得するために使用できる VB コードはありますか?

事前にベティに感謝します。

4

3 に答える 3

5
HttpContext.Current.User.Identity.Name 

または User.Identity.Name、OP のコードによるとUserのみスコープ内にある

ユーザー名を与えます。を使用して他の情報にアクセスできます

User.Identity

于 2012-06-29T09:29:29.367 に答える
3

次の方法で、アプリケーションを使用して現在のユーザー名を取得できます。

string loggedUser = HttpContext.Current.User.Identity.Name.ToString();

これを取得したら、データベースに保存できます

LoggedUser をデータベースに渡す

于 2012-06-29T09:31:10.403 に答える
0

他の人が言ったように、ログインしているユーザーの名前は で取得できますUser.Identity.Name

web.config に適切なタグを追加すると、ロール メンバーシップをチェックするコードを削除することもできます。コードでメンバーシップを確認することは、ロールの名前が事前にわかっておらず、web.config ファイルに保存できない場合にのみ役立ちます。ロールがデータベースから取得される場合。

locationタグを使用して、特定のページへのアクセスを許可されたロールを指定できます。

<configuration>
 ....
 <location path="MySecurePage.aspx">    
      <system.web>    
           <authorization>    
                <allow roles="Administrators,MyGroup" />    
                <deny users="*"/>
           </authorization>    
      </system.web>    
 </location> 
</configuration>
于 2012-06-29T09:44:07.117 に答える