0

私はこの Web アプリケーションに少し慣れていません。Visual Studio 2012 で ASP.NET Web フォーム アプリケーション用の新しいプロジェクトを作成すると、定義済みのページ/関数がいくつか生成されます。時間を節約できるように見えるので、実際にこれらの関数を使用したいと思います。

この時点で、正常に動作する Register.aspx と Login.aspx があることに気付きました。問題は、Access 2007 にいくつかのテーブルを含むデータベースがあることです。次のいずれかを実行できるかどうか、およびその方法を知りたいです。

1)DefualtConnectionデータベースを保持し、現在ログインしているユーザー名を照会し、そのユーザー名を使用してAccessデータベースにそのユーザー名に基づく情報を照会します。

2) Access データベースを使用して、独自の登録とログインを作成します。この場合、ログインしているユーザーをどのように追跡すればよいのでしょうか。また、ユーザーの作成ウィザードを使用するとエラーが発生します。

助けてください。最終プロジェクトの作業を続けるために、この情報が必要です。教授はこれを行う方法について手がかりがなく、私はウェブを検索して答えていますが、正しい質問をしていないようです. 前もって感謝します :)

*編集

•<strong>ログイン ユーザーの意味: 画像https://dl.dropbox.com/u/22962879/Project_4_Registro_Est/Logged%20in%20user%20Project4.png

•<strong>デフォルト接続:

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-Project_4_Registro_Est-20130131171154;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-Project_4_Registro_Est-20130131171154.mdf"
  providerName="System.Data.SqlClient" />

•<strong>マイ アクセス データベース

myConn = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\cast\Documents\test.accdb")

私の解決策:

User.Identity.Name を呼び出すことで、ログインしているユーザー名を取得できることがわかりました。だから私は次のことをしました:

'//The following code is an example of using the Logged/signed in username to then'
'//Query other Databases based on the user name:'

    Dim myConn As System.Data.OleDb.OleDbConnection

    Dim cmd As New System.Data.OleDb.OleDbCommand


    Dim sqlstring As String

    '//Connecting to My Database:'
    myConn = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\cast\Documents\test.accdb")
    '//Query I wish to use to find all data based on User name:'
    sqlstring = "Select FirstName, LastName, UserType FROM users WHERE Username = '" + User.Identity.Name + "'"
    Try
        '//Start by opening the connection'
        myConn.Open()
        '//I use str for now to store the results'
        Dim str As String = ""          

        '//Set the command by adding the SQL string and Connection:'
        cmd = New OleDb.OleDbCommand(sqlstring, myConn)
        '//Create variable which contains results from Executed command:'
        Dim oledbReader As OleDb.OleDbDataReader = cmd.ExecuteReader

        '//Keep reading each row that contains the Queried Results:'
        While oledbReader.Read
            '//Store result to str. each item is a Column in the order I Queried'
            str = str + (oledbReader.Item(0) & " " & oledbReader.Item(1) & " (" & oledbReader.Item(2)).ToString() & ")" + "\n"
        End While

        '//Show results on page's Label1:'
        Label1.Text = str

        '//Close everything'
        oledbReader.Close()
        cmd.Dispose()
        myConn.Close()

    Catch ex As Exception
        '//show error message if could not connect'
        MsgBox("Can not open connection! X_X")
    End Try
4

1 に答える 1

0

これは、SimpleMembership を使用する必要があります。だから聞いてくださいWebMatrix.WebData.WebSecurity.CurrentUserName。見るのもWebSecurity.IsAuthenticatedいいでしょう。

于 2013-02-08T17:14:08.667 に答える