1

私は、近い将来、既存のWebサイトを置き換えるWebサイトを構築中です。既存のウェブサイトには約が含まれています。コンポジットでエクストラネットモジュール(購入したもの)に「インポート」する必要がある300人のユーザー。

エクストラネットモジュールにユーザーをバッチ作成する方法はありますか?

4

2 に答える 2

0

ありがとうございました。それは今動作します。ユーザーをプログラムでインポートしました。Visual Studio で複合ソリューションを開き、aspx ページを追加しました。これがコードビハインドです。

using System;
using System.Collections.Generic;
using System.IO;
using Composite.Community.Extranet;
using Composite.Community.Extranet.Data;

public partial class ImportUsers : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string path = Server.MapPath("UsersToImport.csv");
        StreamReader _streamReader = new StreamReader(path);

        IList<Guid> userIds = new List<Guid>();
        string line;
        while ((line = _streamReader.ReadLine()) != null)
        {
            string[] fields = line.Split(',');
            IExtranetUser extranetUser = new ExtranetUser();
            extranetUser.Name = fields[0];
            extranetUser.UserName = fields[1];
            extranetUser.Email = fields[2];
            extranetUser.IsApproved = true;

            IExtranetUser addedUser = ExtranetFacade.AddNewUser("Default", extranetUser);
            userIds.Add(addedUser.Id);

            ExtranetFacade.SetUsersForGroup("Default", new Guid("bc728100-e28e-4135-a14c-bead6e0b9b00"), userIds);
            Response.Write(string.Format("User: {0} added at {1}", addedUser.UserName, addedUser.CreationDate));
        }
    }
}
于 2013-01-17T06:27:44.187 に答える
0

はい、既存のユーザー データベースをインポートできます。これを行うには、スクリプトを作成して Web サイトで実行するか、基礎となる SQL テーブル / XML ファイルを直接操作します (複合 C1 データの格納に使用するものによって異なります)。また、既存のユーザー データベースを Composite C1 Extranet にリンクするプロバイダーを構築することもできます。

プログラムによるユーザーのインポート: スクリプト アプローチについては、 http: //docs.composite.net/Packages/Community/Extranet/CompositeCommunityExtranetDeveloperGuide/Using-Extranet-Facade-Methods で説明されている AddNewUser などのメソッドを参照してください。

このスクリプトは、Composite C1 Web サイトで実行される Web サービス、aspx ページなどとして記述します。

デフォルト設定でエクストラネットを実行している場合は、providerName「デフォルト」であると想定してください。

物理データ ストアを直接操作する: これは、実行しているデータ ストアによって異なります。必要なグループとテスト ユーザーを追加して、基になる XML ファイルや SQL テーブルを参照するときにデータを認識できるようにすることをお勧めします。

  • XML (デフォルト) で実行している場合は、フォルダー ~/App_Data/Composite/DataStores にある Composite.Community.Extranet.DefaultProvider.DataTypes.DefaultProvider*.xml という名前のファイルに注目する必要があります。グループ用、ユーザー用、ユーザーとグループ間の関係用の 3 つの sush ファイルがあります。

  • SQL Server で実行している場合は、Composite.Community.Extranet.DefaultProvider.DataTypes.DefaultProvider* という名前の 3 つのテーブルに注目する必要があります。

どちらの場合も、User テーブル/xml ファイルに新しいエントリを追加し、一致するグループ関係を GroupUser テーブル/xml ファイルに追加する必要があります。ユーザーを追加するときは、一意の ID を提供し、この ID を再利用してユーザーを GroupUser に登録します。

変更を行ったら、[ツール] | [ツール] を使用して Composite C1 を強制的にリロードできます。C1 コンソールでサーバーを再起動するコマンド。変更を加える前にファイル/テーブルのバックアップを作成すると、バックアップを復元することで簡単に元に戻すことができます (最初からやり直す必要がある場合)。

ユーザー/グループ プロバイダーの作成: ユーザー データが外部ストアにあり、それを保持したい場合は、カスタム プロバイダーを作成して、この既存のユーザー ストアと複合 C1 エクストラネットとの間のブリッジを作成することもできます。これが関連する場合は、http://docs.composite.net/Packages/Community/Extranet/CompositeCommunityExtranetDeveloperGuide/Writing-Custom-Extranet-Providers を参照してください

于 2013-01-07T11:19:02.097 に答える