私はasp.netを学んでいるので、これを行う方法が間違っている可能性があるので、より良い方法があれば教えてください。
ユーザーがログインすると、管理するすべてのサイトのドロップダウンリストが表示される「ポータル」があります。
ログインしたユーザーに基づいて作成したストアド プロシージャを使用して、ドロップダウン ボックスに入力したいと考えています。
ユーザーをデータベースに保存する組み込みの createuserWizard を使用しました。すべてのサイトを含む別のテーブルと、サイトとユーザーをリンクする 3 番目のテーブルを作成しました。
ドロップダウンリストはこちら
<code>
<asp:DropDownList ID="DropDownListAClient" runat="server"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
DataSourceID="SqlDataSourceSitePicker" DataTextField="SiteName"
DataValueField="SiteName">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSourceSitePicker" runat="server"
ConnectionString="<%$ ConnectionStrings:MainAppDB %>"
SelectCommand="portal_SitePicker" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter Name="portaluserid" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
</code>
ストアドプロシージャのコードは次のとおりです
<code>
ALTER PROCEDURE [dbo].[portal_SitePicker]
-- Add the parameters for the stored procedure here
@portaluserid varchar
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT SiteName
FROM dbo.aspnet_UserMap, dbo.Sites
WHERE dbo.Sites.SiteID = dbo.aspnet_UserMap.SiteID
and dbo.aspnet_UserMap.UserID = @portaluserid
END
</code>
ストアド プロシージャをテストすると、正しいサイトが取得されますが、現在ログインしているユーザーからユーザー ID の値を取得する方法がわかりません。
助言がありますか?