• 将现有网站与Community Server2.0整合解决方案(原创)


    网站需要快速搭建论坛与BOLG平台, 突然想到CS2.0, 2天搞定用户整合部分!以下是解决方案!

    解决老用户向新的论坛的导入问题

    1 清空论坛内的数据, 或 直接导入空的数据库 CS2DataBase2.0.bak 恢复名称为 CommunityServer
    2 在CommunityServer库中添加 原TestDataBaseWeb库中的TestDataBaseWebAdmin用户
    3 执行以下存储过程

    USE CommunityServer
    GO
    /*
    用户整合 将指定的用户信息转入CS2.0中
    2008-3-3
    测试: user:liangzhimy66  pwd: 111111
     EXEC dbo.cs_Auto_Create_User  
     @UserID   = 'liangzhimy66',
     @Email    = 'liangzhimy66@yahoo.com.cn',  
     @CommonName = 'liangzhimy66',
     @CommPassword   = 'ZPg9qqxyp2sWPM+a+juLTP72wKM=',
     @CommPasswordSalt = 'dG2Q/DXNfUTXDr/mBH5Rgw=='
    */
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cs_Auto_Create_User]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[cs_Auto_Create_User]
    GO

    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO

    -- =============================================
    -- Author: LIANGZHIMY 
    -- Create date: 2008-3-3
    -- Description: 用户整合 将指定的用户信息转入CS2.0中
    -- =============================================
    CREATE PROCEDURE dbo.cs_Auto_Create_User  
     @UserID     nvarchar(256),   
     @Email      nvarchar(128),  
     @CommonName nvarchar(128),
     @CommPassword   nvarchar(128),
     @CommPasswordSalt nvarchar(128)
    AS
    BEGIN   
    DECLARE @retval int   
    DECLARE @timezoneadj int   
    SET @timezoneadj = DATEDIFF(hh,GETUTCDATE(),GETDATE())   

    EXECUTE @retval = aspnet_Membership_GetUserByName      
     @ApplicationName    = 'dev',      
     @UserName           = @UserID,   
     @TimeZoneAdjustment = @timezoneadj,     
     @UpdateLastActivity = 1   

    IF (@retval = -1)
    BEGIN       
    DECLARE @newuserid uniqueidentifier       
    DECLARE @guid uniqueidentifier       
    DECLARE @csuserid int       
    SET @guid = NEWID()       

    EXECUTE @retval = aspnet_Membership_CreateUser           
    @ApplicationName    = 'dev',           
    @UserName           = @UserID,           
    @Password           = @CommPassword,           
    @PasswordSalt       = @CommPasswordSalt,           
    @Email              = @Email,           
    @PasswordQuestion   = NULL,           
    @PasswordAnswer     = NULL,           
    @IsApproved         = 1,           
    @TimeZoneAdjustment = @timezoneadj,           
    @UniqueEmail        = 1,           
    @PasswordFormat     = 1,           
    @UserId             = @newuserid OUTPUT      

    EXECUTE @retval = aspnet_UsersInRoles_AddUsersToRoles           
    @ApplicationName    = 'dev',           
    @UserNames          = @UserID,           
    @RoleNames          = 'Everyone,Registered Users',           
    @TimeZoneAdjustment = @timezoneadj       

    EXECUTE @retval = cs_user_CreateUpdateDelete            
    @cs_UserID   = @csuserid OUTPUT,
    @UserID             = @newuserid,           
    @Action             = 0,        -- CREATE
    @SettingsID               = 1000,     -- CS           
    @TimeZone                           = 0,          
    @ModerationLevel                    = 1,        -- Not Moderated           
    @EnableThreadTracking               = 1,           
    @EnableDisplayUnreadThreadsOnly     = 1  
    /*
    @Action=0,
    @cs_UserID=@p2 output,
    @UserID=@newuserid,
    @UserAccountStatus=1,
    @IsAnonymous=0,
    @IsIgnored=0,
    @ForceLogin=0,
    @AppUserToken='',
    @PropertyNames=default,
    @PropertyValues=default,
    @TimeZone=0,
    @PostRank=default,
    @PostSortOrder=0,
    @IsAvatarApproved=1,
    @ModerationLevel=0,
    @EnableThreadTracking=0,
    @EnableAvatar=0,
    @EnableDisplayInMemberList=1,
    @EnablePrivateMessages=0,
    @EnableOnlineStatus=0,
    @EnableEmail=1,
    @EnableHtmlEmail=1,
    @FavoritesShared=0,
    @SettingsID=1000
    */
    END   

    EXECUTE aspnet_Profile_GetProperties       
    @ApplicationName        = 'dev',       
    @UserName               = @UserID,       
    @TimeZoneAdjustment     = @timezoneadj   
    IF  (@@ROWCOUNT = 0)
    BEGIN      

    DECLARE @pn varchar(1000), @pvs varchar(1000)      
    SET @pvs = '-5'+@CommonName       
    SET @pn = 'timezone:S:0:2:commonName:S:2:' + CAST(LEN(@CommonName) AS varchar(5))      

    EXECUTE aspnet_Profile_SetProperties          
    @ApplicationName        = 'dev',           
    @PropertyNames          = @pn,           
    @PropertyValuesString   = @pvs,           
    @PropertyValuesBinary   = '',           
    @UserName               = @UserID,           
    @IsUserAnonymous        = 0,           
    @TimeZoneAdjustment     = @timezoneadj   
    END

     
    END


    -- 自动开通论坛
    DECLARE @pUserName Varchar(256)
    DECLARE @pUserID int
    SET @pUserName =  @UserID 
    print LEN(@pUserName)

    DECLARE @pPropertyValues VARCHAR(256)

    SET @pPropertyValues = N'' + Convert(varchar(128), @pUserName) +  'TrueTrueAbout ' + Convert(varchar(128), @pUserName)

    DECLARE @pPropertyNames  VARCHAR(1000)
    --SET @pPropertyNames = N'SectionOwners:S:0:5:EnableAggBugs:S:5:4:IsCommunityAggregated:S:9:4:aboutTitle:S:13:11:'
    SET @pPropertyNames = N'SectionOwners:S:0:' + Convert(varchar(10), LEN(@pUserName))  +
    ':EnableAggBugs:S:' + Convert(varchar(10), LEN(@pUserName))  + ':4:IsCommunityAggregated:S:'
    + Convert(varchar(10), LEN(@pUserName) + 4)  + ':4:aboutTitle:S:' +
    Convert(varchar(10), LEN(@pUserName) + 8)
     + ':11:'

    SET @pPropertyNames = N'publicEmail:S:0:0:yahooIM:S:0:0:timezone:S:0:1:msnIM:S:1:0:commonName:S:1:0:birthdate:B:0:-1:gender:B:0:-1:fontsize:B:0:-1:bio:S:1:0:webLog:S:1:0:enablePostPreviewPopup:B:0:-1:location:S:1:0:interests:S:1:0:webGallery:B:0:-1:occupation:S:1:0:signature:S:1:0:icqIM:S:1:0:aolIM:S:1:0:signatureFormatted:S:1:0:webAddress:S:1:0:enableEmoticons:B:0:-1:'

    SET @pPropertyValues = N'8'


    print @pPropertyNames
    SELECT @pUserID = u.UserID FROM dbo.cs_Users u
    JOIN dbo.aspnet_Users m
    ON m.UserId = u.MembershipID
    Where UserName = @pUserName

    declare @P1 int
    SET @P1 = 0

    declare @pGroupID int

    SELECT TOP 1 @pGroupID = GroupID
    FROM cs_Groups
    WHERE (ApplicationType = 1)
    ORDER BY SortOrder DESC

    exec dbo.cs_Section_CreateUpdateDelete
     @SectionID = @P1 output,
    @Name = @pUserName,
    @Url = default,
    @Description = N'',
    @ParentID = 0,
    @GroupID = @pGroupID,
    @IsModerated = 0,
    @DisplayPostsOlderThan = 7,
    @IsActive = 1,
    @EnablePostStatistics = 1,
    @EnablePostPoints = 1,
    @EnableAutoDelete = 0,
    @EnableAnonymousPosting = 0,
    @AutoDeleteThreshold = 90,
    @SortOrder = 0,
    @IsSearchable = 1,
    @ApplicationType = 1,
    @ApplicationKey = @pUserName,
    @ForumType = 0,
    @PropertyNames = @pPropertyNames,
    @PropertyValues =  @pPropertyValues,
    @SettingsID = 1000,
    @UserID = @pUserID
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO

    GRANT  EXECUTE  ON [dbo].[cs_Auto_Create_User]  TO [TestDataBaseWebAdmin]
    GO

    USE TestDataBaseWeb
    GO

    /*
    用户注册时自动注册到BBS中
    */
    CREATE PROC dbo.TestDataBase_User_AutoRegBBS
     @RegUserName nvarchar(256)
    AS

    DECLARE @pUserID     nvarchar(256),   
     @pEmail      nvarchar(128),  
     @pCommonName nvarchar(128),
     @pCommPassword   nvarchar(128),
     @pCommPasswordSalt nvarchar(128)

    SELECT @pUserID = UserName, @pCommonName = loweredUserName, @pCommPassword = Password,
    @pCommPasswordSalt = PasswordSalt,  @pEmail = Email
     FROM dbo.aspnet_Users u
    JOIN dbo.aspnet_Membership m
    ON u.UserID = m.UserID
    where u.UserName = @RegUserName

    EXEC CommunityServer.dbo.cs_Auto_Create_User
     @UserID   = @pUserID,
     @Email    = @pEmail,  
     @CommonName = @pCommonName,
     @CommPassword   = @pCommPassword,
     @CommPasswordSalt = @pCommPasswordSalt
    GO

    4 导入原网站内的用户
     执行以下脚本

    USE TestDataBaseWeb
    GO

    DECLARE @pUserID     nvarchar(256),   
     @pEmail      nvarchar(128),  
     @pCommonName nvarchar(128),
     @pCommPassword   nvarchar(128),
     @pCommPasswordSalt nvarchar(128)

    DECLARE contact_cursor CURSOR FOR
    SELECT  UserName, loweredUserName, [Password], PasswordSalt, Email
     FROM dbo.aspnet_Users u
    JOIN dbo.aspnet_Membership m
    ON u.UserID = m.UserID

    OPEN contact_cursor

    FETCH NEXT FROM contact_cursor
    INTO @pUserID, @pCommonName, @pCommPassword, @pCommPasswordSalt, @pEmail

    WHILE @@FETCH_STATUS = 0
    BEGIN
       PRINT 'UserID: ' + @pUserID 
     -- 导入数据以CS2中
     EXEC CommunityServer.dbo.cs_Auto_Create_User
     @UserID   = @pUserID,
     @Email    = @pEmail,  
     @CommonName = @pCommonName,
     @CommPassword   = @pCommPassword,
     @CommPasswordSalt = @pCommPasswordSalt
       FETCH NEXT FROM contact_cursor
       INTO @pUserID, @pCommonName, @pCommPassword, @pCommPasswordSalt, @pEmail
    END
    CLOSE contact_cursor
    DEALLOCATE contact_cursor

    GO

    5 .NET webconfig中 注意修改domain=".test.com"
    完整解决方案

      <authentication mode="Forms">
        <forms name=".SWSCOMMONDOMAINTestDataBaseCOM" domain=".test.com" protection="All" defaultUrl="Default.aspx" loginUrl="login.aspx" ></forms>
       </authentication>
       <machineKey
      validationKey= "C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
      decryptionKey= "8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
      validation="SHA1">
       </machineKey>
        
    以下是解决过程中的问题总结

    -----------------------------------------------------------------------------------------------------
    // 自动建立论坛

    // 1 自动注册后创建论坛的模块
    public class AutoBlogCreate : ICSModule
    // 2 调用的事件
    CSEvents.AfterUser(createdUser,ObjectState.Create);
     
    -----------------------------------------------------------------------------------------------------
    // 自动开通论坛
    DECLARE @pUserName Varchar(128)
    DECLARE @pUserID int
    SET @pUserName = N'liangzhimytest1'
    print LEN(@pUserName)

    DECLARE @pPropertyValues VARCHAR(256)

    SET @pPropertyValues = N'' + Convert(varchar(128), @pUserName) +  'TrueTrueAbout ' + Convert(varchar(128), @pUserName)

    DECLARE @pPropertyNames  VARCHAR(1000)
    --SET @pPropertyNames = N'SectionOwners:S:0:5:EnableAggBugs:S:5:4:IsCommunityAggregated:S:9:4:aboutTitle:S:13:11:'
    SET @pPropertyNames = N'SectionOwners:S:0:' + Convert(varchar(10), LEN(@pUserName))  +
    ':EnableAggBugs:S:' + Convert(varchar(10), LEN(@pUserName))  + ':4:IsCommunityAggregated:S:'
    + Convert(varchar(10), LEN(@pUserName) + 4)  + ':4:aboutTitle:S:' +
    Convert(varchar(10), LEN(@pUserName) + 8)
     + ':11:'

    print @pPropertyNames
    SELECT @pUserID = u.UserID FROM dbo.cs_Users u
    JOIN dbo.aspnet_Users m
    ON m.UserId = u.MembershipID
    Where UserName = @pUserName

    declare @P1 int
    SET @P1 = 0

    declare @pGroupID int

    SELECT TOP 1 @pGroupID = GroupID
    FROM cs_Groups
    WHERE (ApplicationType = 1)
    ORDER BY SortOrder DESC

    exec dbo.cs_Section_CreateUpdateDelete
     @SectionID = @P1 output,
    @Name = @pUserName,
    @Url = default,
    @Description = N'',
    @ParentID = 0,
    @GroupID = @pGroupID,
    @IsModerated = 0,
    @DisplayPostsOlderThan = 7,
    @IsActive = 1,
    @EnablePostStatistics = 1,
    @EnablePostPoints = 1,
    @EnableAutoDelete = 0,
    @EnableAnonymousPosting = 0,
    @AutoDeleteThreshold = 90,
    @SortOrder = 0,
    @IsSearchable = 1,
    @ApplicationType = 1,
    @ApplicationKey = @pUserName,
    @ForumType = 0,
    @PropertyNames = @pPropertyNames,
    @PropertyValues =  @pPropertyValues,
    @SettingsID = 1000,
    @UserID = @pUserID

    GO

    -----------------------------------------------------------------------------------------------------
     /*
    用户注册时自动注册到BBS中
    */
    CREATE PROC dbo.Gupk_User_AutoRegBBS
     @RegUserName nvarchar(256)
    AS

    DECLARE @pUserID     nvarchar(256),   
     @pEmail      nvarchar(128),  
     @pCommonName nvarchar(128),
     @pCommPassword   nvarchar(128),
     @pCommPasswordSalt nvarchar(128)

    SELECT @pUserID = UserName, @pCommonName = loweredUserName, @pCommPassword = Password,
    @pCommPasswordSalt = PasswordSalt,  @pEmail = Email
     FROM dbo.aspnet_Users u
    JOIN dbo.aspnet_Membership m
    ON u.UserID = m.UserID
    where u.UserName = @RegUserName

    EXEC CommunityServer.dbo.cs_Auto_Create_User
     @UserID   = @pUserID,
     @Email    = @pEmail,  
     @CommonName = @pCommonName,
     @CommPassword   = @pCommPassword,
     @CommPasswordSalt = @pCommPasswordSalt
    GO

    -----------------------------------------------------------------------------------------------------
    /*
    用户整合 将指定的用户信息转入CS2.0中
    2008-3-3
    测试: user:liangzhimy66  pwd: 111111
     EXEC dbo.cs_Auto_Create_User  
     @UserID   = 'liangzhimy66',
     @Email    = 'liangzhimy66@yahoo.com.cn',  
     @CommonName = 'liangzhimy66',
     @CommPassword   = 'ZPg9qqxyp2sWPM+a+juLTP72wKM=',
     @CommPasswordSalt = 'dG2Q/DXNfUTXDr/mBH5Rgw=='
    */
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cs_Auto_Create_User]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[cs_Auto_Create_User]
    GO

    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO

    -- =============================================
    -- Author: LIANGZHIMY 
    -- Create date: 2008-3-3
    -- Description: 用户整合 将指定的用户信息转入CS2.0中
    -- =============================================
    CREATE PROCEDURE dbo.cs_Auto_Create_User  
     @UserID     nvarchar(256),   
     @Email      nvarchar(128),  
     @CommonName nvarchar(128),
     @CommPassword   nvarchar(128),
     @CommPasswordSalt nvarchar(128)
    AS
    BEGIN   
    DECLARE @retval int   
    DECLARE @timezoneadj int   
    SET @timezoneadj = DATEDIFF(hh,GETUTCDATE(),GETDATE())   

    EXECUTE @retval = aspnet_Membership_GetUserByName      
     @ApplicationName    = 'dev',      
     @UserName           = @UserID,   
     @TimeZoneAdjustment = @timezoneadj,     
     @UpdateLastActivity = 1   

    IF (@retval = -1)
    BEGIN       
    DECLARE @newuserid uniqueidentifier       
    DECLARE @guid uniqueidentifier       
    DECLARE @csuserid int       
    SET @guid = NEWID()       

    EXECUTE @retval = aspnet_Membership_CreateUser           
    @ApplicationName    = 'dev',           
    @UserName           = @UserID,           
    @Password           = @CommPassword,           
    @PasswordSalt       = @CommPasswordSalt,           
    @Email              = @Email,           
    @PasswordQuestion   = NULL,           
    @PasswordAnswer     = NULL,           
    @IsApproved         = 1,           
    @TimeZoneAdjustment = @timezoneadj,           
    @UniqueEmail        = 1,           
    @PasswordFormat     = 1,           
    @UserId             = @newuserid OUTPUT      

    EXECUTE @retval = aspnet_UsersInRoles_AddUsersToRoles           
    @ApplicationName    = 'dev',           
    @UserNames          = @UserID,           
    @RoleNames          = 'Everyone,Registered Users',           
    @TimeZoneAdjustment = @timezoneadj       

    EXECUTE @retval = cs_user_CreateUpdateDelete            
    @cs_UserID   = @csuserid OUTPUT,
    @UserID             = @newuserid,           
    @Action             = 0,        -- CREATE
    @SettingsID               = 1000,     -- CS           
    @TimeZone                           = 0,          
    @ModerationLevel                    = 1,        -- Not Moderated           
    @EnableThreadTracking               = 1,           
    @EnableDisplayUnreadThreadsOnly     = 1  
    /*
    @Action=0,
    @cs_UserID=@p2 output,
    @UserID=@newuserid,
    @UserAccountStatus=1,
    @IsAnonymous=0,
    @IsIgnored=0,
    @ForceLogin=0,
    @AppUserToken='',
    @PropertyNames=default,
    @PropertyValues=default,
    @TimeZone=0,
    @PostRank=default,
    @PostSortOrder=0,
    @IsAvatarApproved=1,
    @ModerationLevel=0,
    @EnableThreadTracking=0,
    @EnableAvatar=0,
    @EnableDisplayInMemberList=1,
    @EnablePrivateMessages=0,
    @EnableOnlineStatus=0,
    @EnableEmail=1,
    @EnableHtmlEmail=1,
    @FavoritesShared=0,
    @SettingsID=1000
    */
    END   

    EXECUTE aspnet_Profile_GetProperties       
    @ApplicationName        = 'dev',       
    @UserName               = @UserID,       
    @TimeZoneAdjustment     = @timezoneadj   
    IF  (@@ROWCOUNT = 0)
    BEGIN      

    DECLARE @pn varchar(1000), @pvs varchar(1000)      
    SET @pvs = '-5'+@CommonName       
    SET @pn = 'timezone:S:0:2:commonName:S:2:' + CAST(LEN(@CommonName) AS varchar(5))      

    EXECUTE aspnet_Profile_SetProperties          
    @ApplicationName        = 'dev',           
    @PropertyNames          = @pn,           
    @PropertyValuesString   = @pvs,           
    @PropertyValuesBinary   = '',           
    @UserName               = @UserID,           
    @IsUserAnonymous        = 0,           
    @TimeZoneAdjustment     = @timezoneadj   
    END

     
    END


    -- 自动开通论坛
    DECLARE @pUserName Varchar(256)
    DECLARE @pUserID int
    SET @pUserName =  @UserID 
    print LEN(@pUserName)

    DECLARE @pPropertyValues VARCHAR(256)

    SET @pPropertyValues = N'' + Convert(varchar(128), @pUserName) +  'TrueTrueAbout ' + Convert(varchar(128), @pUserName)

    DECLARE @pPropertyNames  VARCHAR(1000)
    --SET @pPropertyNames = N'SectionOwners:S:0:5:EnableAggBugs:S:5:4:IsCommunityAggregated:S:9:4:aboutTitle:S:13:11:'
    SET @pPropertyNames = N'SectionOwners:S:0:' + Convert(varchar(10), LEN(@pUserName))  +
    ':EnableAggBugs:S:' + Convert(varchar(10), LEN(@pUserName))  + ':4:IsCommunityAggregated:S:'
    + Convert(varchar(10), LEN(@pUserName) + 4)  + ':4:aboutTitle:S:' +
    Convert(varchar(10), LEN(@pUserName) + 8)
     + ':11:'

    print @pPropertyNames
    SELECT @pUserID = u.UserID FROM dbo.cs_Users u
    JOIN dbo.aspnet_Users m
    ON m.UserId = u.MembershipID
    Where UserName = @pUserName

    declare @P1 int
    SET @P1 = 0

    declare @pGroupID int

    SELECT TOP 1 @pGroupID = GroupID
    FROM cs_Groups
    WHERE (ApplicationType = 1)
    ORDER BY SortOrder DESC

    exec dbo.cs_Section_CreateUpdateDelete
     @SectionID = @P1 output,
    @Name = @pUserName,
    @Url = default,
    @Description = N'',
    @ParentID = 0,
    @GroupID = @pGroupID,
    @IsModerated = 0,
    @DisplayPostsOlderThan = 7,
    @IsActive = 1,
    @EnablePostStatistics = 1,
    @EnablePostPoints = 1,
    @EnableAutoDelete = 0,
    @EnableAnonymousPosting = 0,
    @AutoDeleteThreshold = 90,
    @SortOrder = 0,
    @IsSearchable = 1,
    @ApplicationType = 1,
    @ApplicationKey = @pUserName,
    @ForumType = 0,
    @PropertyNames = @pPropertyNames,
    @PropertyValues =  @pPropertyValues,
    @SettingsID = 1000,
    @UserID = @pUserID
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO

    GRANT  EXECUTE  ON [dbo].[cs_Auto_Create_User]  TO [GupkWebAdmin]
    GO

    -------------------------------------------------------------------------------------------------------
    3.2跨应用程序 Forms 身份验证
    ASP.NET 在分布式环境中支持 Forms 身份验证,即跨单个服务器或 Web 场上的应用程序。对于参与共享 Forms 身份验证的所有应用程序,<forms> 元素配置节中的几个配置属性必须一致。对于不同的应用程序,以下示例中的指令 name、protection、path、validationKey、descriptionKey 和 validation 必须相同(除非另有指定)。

     
    本网站是 www.gupktest.com   bbs.gupktest.com
     
    以下是对两个网站内的WEBCONFIG的修改 注意修改域名 domain

    1.配置文件Web.config中,将验证模式设为Forms,而且在下面的参数中,要保证两边一致
    testLogon的Web.config对应部分

      <authentication mode="Forms">
        <forms name=".SWSCOMMONDOMAINGUPKCOM" domain=".gupktest.com" protection="All" defaultUrl="Default.aspx" loginUrl="login.aspx" ></forms>
       </authentication>
      
    2 另外以下的.<machineKey>的增加是必须的
          <machineKey
      validationKey= "C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
      decryptionKey= "8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
      validation="SHA1">
       </machineKey>
      
    3. 注意加 domain=".gupktest.com"


    参考:
    http://www.cnblogs.com/windsails/archive/2004/10/15/52818.aspx
    http://www.cnblogs.com/winner/archive/2007/07/21/826791.html


    完整解决方案

      <authentication mode="Forms">
        <forms name=".SWSCOMMONDOMAINGUPKCOM" domain=".gupktest.com" protection="All" defaultUrl="Default.aspx" loginUrl="login.aspx" ></forms>
       </authentication>
       <machineKey
      validationKey= "C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE"
      decryptionKey= "8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F"
      validation="SHA1">
       </machineKey>

    --------------------------------------------------------------------------------------------------------------

    将原Gupk数据导入CS2中

    -- Declare the variables to store the values returned by FETCH.
    DECLARE @pUserID     nvarchar(256),   
     @pEmail      nvarchar(128),  
     @pCommonName nvarchar(128),
     @pCommPassword   nvarchar(128),
     @pCommPasswordSalt nvarchar(128)

    DECLARE contact_cursor CURSOR FOR
    SELECT  UserName, loweredUserName, [Password], PasswordSalt, Email
     FROM dbo.aspnet_Users u
    JOIN dbo.aspnet_Membership m
    ON u.UserID = m.UserID

    OPEN contact_cursor

    FETCH NEXT FROM contact_cursor
    INTO @pUserID, @pCommonName, @pCommPassword, @pCommPasswordSalt, @pEmail

    WHILE @@FETCH_STATUS = 0
    BEGIN
       PRINT 'UserID: ' + @pUserID 
     -- 导入数据以CS2中
     EXEC CommunityServer.dbo.cs_Auto_Create_User
     @UserID   = @pUserID,
     @Email    = @pEmail,  
     @CommonName = @pCommonName,
     @CommPassword   = @pCommPassword,
     @CommPasswordSalt = @pCommPasswordSalt
       FETCH NEXT FROM contact_cursor
       INTO @pUserID, @pCommonName, @pCommPassword, @pCommPasswordSalt, @pEmail
    END
    CLOSE contact_cursor
    DEALLOCATE contact_cursor

    ---------------------------------------------------------------------------------------------------------------


       

    就算当不成英雄,也要是一条好汉| 空谈误国,实干兴邦。
  • 相关阅读:
    iOS客户端的gzip解压
    如何将应用打包成.ipa文件(越狱)
    手势UIGestureRecognizer
    ASIHTTPRequest下载数据
    ASIHTTPRequest下载示例(支持断点续传)
    ios与android设备即时语音互通的录音格式
    删除沙盒中文件夹下所有文件
    svn,静态库无法添加
    iOS 3D UI——CALayer的transform扩展解析
    自定义Tabbar实现push动画隐藏效果
  • 原文地址:https://www.cnblogs.com/liangzhimy/p/1093316.html
Copyright © 2020-2023  润新知