DNN站点用户信息模块Session具体实现

用户信息模块Session用于在收集用户注册信息之后关联保存用户注册信息和用户所持显卡条码信息,并且创建验证用户表[xjt_ValidUsers]信息。
具体实现步骤:
1.使用Visual Studio 2005解决方案资源管理器打开DNN站点文件夹DotNetNuke。
2.展开DotNetNuke文件夹,右击DesktopModules文件夹,选择"新建文件夹",并命名为Session。 
3.右击Session文件夹,选择"添加新项",然后选择Visual Studio已安装的模板->Web用户控件,名称Session.ascx,语言选择Visual Basic(或者选择C#,J#,选择你熟悉的即可),勾选"将代码放在单独的文件中"选项,然后单击"添加"。 
4.打开Session.ascx设计视图,按实际需求设计控件。
DNN站点用户信息模块Session具体实现_第1张图片 
5.打开Session.ascx.vb,编写功能模块代码。 
6.功能模块Session设计编写完成后,以host身份登录DNN站点,进入HOST->Module Definitions,选择Create New Module,Name填写EriC Session,Friendly Name填写Session,然后一直Next,直到模块创建完成。 
7.返回HOST->Module Definitions,找到刚才创建的模块Session,点击铅笔图标以Edit this Extension。 
8.进入Configure Session Extension Settings,点击Select Definition->Add Definition,然后Friendly Name填写Session,Default Cache Name默认填写0,然后确认Creat Definition。 
9.创建模块定义成功后,出现Module Controls,点击Add Module Control,进入Edit Module Control面板,Source选择DesktopModules/Session/Session.ascx,最后点击update。
至此,功能模块Session成功添加到DNN站点上,以后需要使用时,在Add New Module中选择Session即可。

 

附:Session.ascx源代码

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="session.ascx.vb" Inherits="DesktopModules_Session_session" %> <table> <tr> <td> <asp:Label ID="Label_WelcomeTips" runat="server">欢迎回来,</asp:Label> <asp:Label ID="Label_Username" runat="server"></asp:Label></td> </tr> <tr> <td> </td> </tr> <tr> <td> <asp:Label ID="Label_TitleProductType" runat="server">产品型号:</asp:Label> </td> </tr> <tr> <td> <asp:Label ID="Label_ProductType" runat="server"></asp:Label></td> </tr> <tr> <td> <asp:Label ID="Label_TitleSNCode" runat="server">S/N条码:</asp:Label> </td> </tr> <tr> <td> <asp:Label ID="Label_SNCode" runat="server"></asp:Label></td> </tr> <tr> <td> <asp:Label ID="Label_TitleManufactureCode" runat="server">生产条码:</asp:Label> </td> </tr> <tr> <td> <asp:Label ID="Label_ManufactureCode" runat="server"></asp:Label></td> </tr> <tr> <td> <asp:Label ID="Label_TitleCreatedOnDate" runat="server">注册时间:</asp:Label> </td> </tr> <tr> <td> <asp:Label ID="Label_CreatedOnDate" runat="server"></asp:Label></td> </tr> </table> <asp:Label ID="Label_ManufactureCode_Beta" runat="server" Visible="False"></asp:Label> <br /> <asp:Label ID="Label_UserID" runat="server" Visible="False"></asp:Label>

 

      Session.ascx.vb源代码

Imports DotNetNuke Imports System.Web.UI Imports System.Collections.Generic Imports System.Reflection Imports DotNetNuke.Security.PortalSecurity Imports System.data Imports System.data.SqlClient Imports System Imports System.Configuration Imports System.Collections Imports System.Web Imports System.Web.Security Imports System.Web.UI.WebControls Imports System.Web.UI.WebControls.WebParts Imports System.Web.UI.HtmlControls Imports System.Security.Cryptography Partial Class DesktopModules_Session_session Inherits Entities.Modules.PortalModuleBase Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Label_Username.Text = UserInfo.Username Label_SNCode.Text = Session.Contents("SNCode") Label_ManufactureCode_Beta.Text = Session.Contents("ManufactureCode") If Label_ManufactureCode_Beta.Text.Length = 16 Then Label_ManufactureCode.Text = Label_ManufactureCode_Beta.Text ElseIf Label_ManufactureCode_Beta.Text.Length = 12 Then Label_ManufactureCode.Text = Label_ManufactureCode_Beta.Text ElseIf Label_ManufactureCode_Beta.Text.Length = 8 Then Label_ManufactureCode.Text = "00000000" & Label_ManufactureCode_Beta.Text End If '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim conn As SqlConnection conn = New SqlConnection("Server=(local);Database=databasename;uid=username;pwd=password") conn.Open() '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '根据[xjt_Users]表Username获得CreatedOnDate Dim date_CreatedOnDate As Date Dim strUsers_Username As String = "select CreatedOnDate from xjt_Users where Username = '" & UserInfo.Username & "'" Dim cmdUsers_Username As SqlCommand = New SqlCommand(strUsers_Username, conn) Dim drUsers_Username As SqlDataReader = cmdUsers_Username.ExecuteReader() If drUsers_Username.Read() Then date_CreatedOnDate = drUsers_Username.GetDateTime(drUsers_Username.GetOrdinal("CreatedOnDate")) Label_CreatedOnDate.Text = date_CreatedOnDate.ToString() drUsers_Username.Close() Else drUsers_Username.Close() End If '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '用户未注册,注册操作后登陆情况 If Label_SNCode.Text.Length <> 0 Then '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '根据[xjt_Validation]表SNCode获得ProductID Dim value_ProductID As Integer Dim strValidation_SNCode As String = "select ProductID from xjt_Validation where SNCode = '" & Trim(Label_SNCode.Text) & "'" Dim cmdValidation_SNCode As SqlCommand = New SqlCommand(strValidation_SNCode, conn) Dim drValidation_SNCode As SqlDataReader = cmdValidation_SNCode.ExecuteReader() If drValidation_SNCode.Read() Then value_ProductID = drValidation_SNCode.GetInt32(drValidation_SNCode.GetOrdinal("ProductID")) drValidation_SNCode.Close() Else drValidation_SNCode.Close() End If '根据[xjt_Validation]表ProductID获得ProductType Dim str_ProductType As String Dim strValidation_ProductID As String = "select ProductType from xjt_Validation where ProductID = '" & value_ProductID & "'" Dim cmdValidation_ProductID As SqlCommand = New SqlCommand(strValidation_ProductID, conn) Dim drValidation_ProductID As SqlDataReader = cmdValidation_ProductID.ExecuteReader() If drValidation_ProductID.Read() Then str_ProductType = drValidation_ProductID.GetString(drValidation_ProductID.GetOrdinal("ProductType")) Label_ProductType.Text = str_ProductType drValidation_ProductID.Close() Else drValidation_ProductID.Close() End If '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '更新[xjt_Validation]表IsValid Dim strUpdate_IsValid As String = "update xjt_Validation set IsValid = 1 where SNCode ='" & Trim(Label_SNCode.Text) & "' and ManufactureCode ='" & Trim(Label_ManufactureCode.Text) & "' " Dim cmdUpdate_IsValid As SqlCommand = New SqlCommand(strUpdate_IsValid, conn) cmdUpdate_IsValid.ExecuteNonQuery() '更新[xjt_Validation]表CreatedDate Dim strUpdate_CreatedDate As String = "update xjt_Validation set CreatedDate = '" & date_CreatedOnDate & "' where SNCode ='" & Trim(Label_SNCode.Text) & "' and ManufactureCode ='" & Trim(Label_ManufactureCode.Text) & "' " Dim cmdUpdate_CreatedDate As SqlCommand = New SqlCommand(strUpdate_CreatedDate, conn) cmdUpdate_CreatedDate.ExecuteNonQuery() '验证[xjt_ValidUsers]表中是否存在此SNCode Dim strIsExist_SNCode As String = "select SNCode from xjt_ValidUsers where SNCode ='" & Trim(Label_SNCode.Text) & "'" Dim cmdIsExist_SNCode As SqlCommand = New SqlCommand(strIsExist_SNCode, conn) Dim drIsExist_SNCode As SqlDataReader = cmdIsExist_SNCode.ExecuteReader() '若存在,则不插入新数据 If drIsExist_SNCode.Read() Then drIsExist_SNCode.Close() '若不存在,则插入新数据 Else '向[xjt_ValidUsers]表插入新数据 drIsExist_SNCode.Close() Dim strInsert_ValidUsers As String = "Insert into xjt_ValidUsers (UserID,UserName,ProductID,ProductType,SNCode,ManufactureCode,CreatedDate) values('" & UserInfo.UserID & "','" & UserInfo.Username & "','" & value_ProductID & "','" & Trim(Label_ProductType.Text) & "','" & Trim(Label_SNCode.Text) & "','" & Trim(Label_ManufactureCode.Text) & "','" & date_CreatedOnDate & "')" Dim cmdInsert_ValidUsers As SqlCommand = New SqlCommand(strInsert_ValidUsers, conn) cmdInsert_ValidUsers.ExecuteNonQuery() End If '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '用户已注册,仅登陆操作情况 Else '根据[xjt_ValidUsers]表Username获得ProductType Dim str_ProductTypeLogin As String Dim strValidUsers_UsernameProductType As String = "select ProductType from xjt_ValidUsers where Username = '" & UserInfo.Username & "'" Dim cmdValidUsers_UsernameProductType As SqlCommand = New SqlCommand(strValidUsers_UsernameProductType, conn) Dim drValidUsers_UsernameProductType As SqlDataReader = cmdValidUsers_UsernameProductType.ExecuteReader() If drValidUsers_UsernameProductType.Read() Then str_ProductTypeLogin = drValidUsers_UsernameProductType.GetString(drValidUsers_UsernameProductType.GetOrdinal("ProductType")) Label_ProductType.Text = str_ProductTypeLogin drValidUsers_UsernameProductType.Close() Else drValidUsers_UsernameProductType.Close() End If '根据[xjt_ValidUsers]表Username获得SNCode Dim str_SNCodeLogin As String Dim strValidUsers_UsernameSNCode As String = "select SNCode from xjt_ValidUsers where Username = '" & UserInfo.Username & "'" Dim cmdValidUsers_UsernameSNCode As SqlCommand = New SqlCommand(strValidUsers_UsernameSNCode, conn) Dim drValidUsers_UsernameSNCode As SqlDataReader = cmdValidUsers_UsernameSNCode.ExecuteReader() If drValidUsers_UsernameSNCode.Read() Then str_SNCodeLogin = drValidUsers_UsernameSNCode.GetString(drValidUsers_UsernameSNCode.GetOrdinal("SNCode")) Label_SNCode.Text = str_SNCodeLogin drValidUsers_UsernameSNCode.Close() Else drValidUsers_UsernameSNCode.Close() End If '根据[xjt_ValidUsers]表Username获得ManufactureCode Dim str_ManufactureCodeLogin As String Dim strValidUsers_UsernameManufactureCode As String = "select ManufactureCode from xjt_ValidUsers where Username = '" & UserInfo.Username & "'" Dim cmdValidUsers_UsernameManufactureCode As SqlCommand = New SqlCommand(strValidUsers_UsernameManufactureCode, conn) Dim drValidUsers_UsernameManufactureCode As SqlDataReader = cmdValidUsers_UsernameManufactureCode.ExecuteReader() If drValidUsers_UsernameManufactureCode.Read() Then str_ManufactureCodeLogin = drValidUsers_UsernameManufactureCode.GetString(drValidUsers_UsernameManufactureCode.GetOrdinal("ManufactureCode")) Label_ManufactureCode.Text = str_ManufactureCodeLogin drValidUsers_UsernameManufactureCode.Close() Else drValidUsers_UsernameManufactureCode.Close() End If End If '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Session.RemoveAll() conn.Close() End Sub End Class

你可能感兴趣的:(DNN站点用户信息模块Session具体实现)