2

私は、VisualWebDeveloperExpress2008をメンバーシップ・プロバイダとしてAccessで使用しています。クエリで現在ログインしているユーザーを使用します。

ユーザーが自分のデータを編集したい場合があります。これには、ユーザーIDがサイトを使用しているユーザーのユーザーIDと同じである必要があるクエリが含まれます。

私はWHIERE UserId =?を使用することを期待していますが、どこに "?"を誘導するのかわかりませんでした。

IDEにはいくつかの選択肢がありますが、どちらを選択するかは不明です。これは有望に見えますが、これはうまくいきません。

<SelectParameters> 
    <asp:ProfileParameter Name="UserID" PropertyName="UserId" Type="Int32" /> 
</SelectParameters> 

Select Parameterにはどのようなものが最適ですか?

答えて

1

Session["CurrentUser"] = User.Identity.Name; 

これはあなたのために働く必要があります...次を挿入をPage_Loadで

<SelectParameters> 
    <asp:SessionParameter Name="UserName" SessionField="CurrentUser" Type="String" /> 
</SelectParameters> 

を使用してみてください。

+1

セッション開始イベントハンドラに入れる方が良い – SillyMonkey

+0

@SillyMonkey、非常に良い点。 +1 – jinsungy

+0

これは私のために働く。今私は "セッション開始イベントハンドラ"にこれを入れる方法を研究する必要があります。 – Degan

1

User.Identity.Nameには、ログインしたユーザーのユーザー名が必要です。

ここで、UserIDを取得するには、ユーザー名を使用してデータベースで確認する必要があります。または、selectステートメントが代わりにユーザー名を使用するようにすることもできます。

+0

私がUserNameを持っていれば、UserIDを直接取得するのに二番目に良いでしょう。 私はあなたが " " これにより、エラーが発生します。DataBinding: 'ProfileCommon'に 'User'という名前のプロパティが含まれていません。多分あなたは別のことを意味するでしょうか? – Degan