Forguncyではユーザーの追加を行うための以下のメソッドを提供しています。
Forguncy Builderでのデバッグ実行時には追加できるユーザー数に制限はありませんが、Forguncy Server上でのアプリケーションを運用する場合、ユーザーの追加にはユーザー数分のユーザー認証ライセンスが必要です。ユーザー認証ライセンスが不足している状態で以下のメソッドを使用した場合、エラーが発生しユーザーは追加されません。
Forguncy.addUser(userName, password, displayName, email, successCallback, errorCallback)
ユーザー名やパスワードを指定して、フォーム認証のユーザーを追加します。
userName |
Type: String |
追加したいユーザーのユーザー名。 |
password |
Type: String |
追加したいユーザーのパスワード。 |
displayName |
Type: String |
追加したいユーザーの氏名。 |
|
Type: String |
追加したいユーザーのメールアドレス。 |
successCallback |
Type: Function() |
ユーザーの追加が成功したときに実行するコールバック関数を指定します。 |
errorCallback |
Type: Function( String errorMessage ) |
ユーザーの追加が失敗したときに実行するコールバック関数を指定します。 引数にエラーメッセージが渡されます。 |
Forguncy.addUser("user1", "123456", "ユーザー1", "user1@example.com", function () { // ユーザーの追加に成功した場合 alert("ユーザーが追加されました。"); }, function (errorMessage) { // ユーザーの追加に失敗した場合 alert(errorMessage); } );
Forguncy.addUser(userName, successCallback, errorCallback)
ユーザー名を指定して、Windows認証のユーザーを追加します。
userName |
Type: String |
追加したいWindowsユーザーのユーザー名。 |
successCallback |
Type: Function() |
ユーザーの追加が成功したときに実行するコールバック関数を指定します。 |
errorCallback |
Type: Function( String errorMessage ) |
ユーザーの追加が失敗したときに実行するコールバック関数を指定します。 引数にエラーメッセージが渡されます。 |
Forguncy.addUser("windowsuser1", function () { // ユーザーの追加に成功した場合 alert("ユーザーが追加されました。"); }, function (errorMessage) { // ユーザーの追加に失敗した場合 alert(errorMessage); } );
HTTPリクエストを送信する方法であれば、どのようなプログラミング言語からもユーザーの追加を行うことが可能です。以下はC#によるサンプルコードとなっており、C# 4.0およびJson.NET(Newtonsoft)が必要です。
class Program { static void Main(string[] args) { var forguncyUserOperator = new ForguncyUserOperator("http://localhost/Forguncy/", "Administrator", "123456"); forguncyUserOperator.AddUser("user1", "123456", "ユーザー1", "user1@example.com"); } } class ForguncyUserOperator { string _baseUrl; string _administratorName; string _administratorPassword; public ForguncyUserOperator(string baseUrl, string administratorName, string administratorPassword) { _baseUrl = baseUrl; _administratorName = administratorName; _administratorPassword = administratorPassword; } public void AddUser(string userName, string password, string displayName, string email) { var requestUrl = "Account/AddUser"; var request = new { userName = userName, password = password, displayName = displayName, email = email }; ExecuteAction(requestUrl, request); } private void ExecuteAction(string requestUrl, object requestData) { var loginCookie = GetLoginCookie(); HttpWebRequest rq = HttpWebRequest.Create(_baseUrl + requestUrl) as HttpWebRequest; rq.CookieContainer = loginCookie; rq.Method = WebRequestMethods.Http.Post; rq.ContentType = "application/json"; var requestStr = JsonConvert.SerializeObject(requestData); var bytes = Encoding.UTF8.GetBytes(requestStr); rq.ContentLength = bytes.Length; var requestStream = rq.GetRequestStream(); requestStream.Write(bytes, 0, bytes.Length); var response = rq.GetResponse(); var result = new StreamReader(response.GetResponseStream()).ReadToEnd(); var apiResult = JsonConvert.DeserializeObject<ApiResult>(result); if (apiResult.Result == false) { throw new Exception(apiResult.Message); } } CookieContainer GetLoginCookie() { var login = _baseUrl + "Account/Login"; HttpWebRequest rq = HttpWebRequest.Create(login) as HttpWebRequest; rq.CookieContainer = new CookieContainer(); rq.Method = WebRequestMethods.Http.Post; rq.Accept = "application/json"; rq.ContentType = "application/json"; var loginStr = "{userName:\"" + _administratorName + "\", password:\"" + _administratorPassword + "\",rememberMe:true }"; var data = Encoding.UTF8.GetBytes(loginStr); using (Stream stream = rq.GetRequestStream()) { stream.Write(data, 0, data.Length); } var response = rq.GetResponse(); return rq.CookieContainer; } class ApiResult { public bool Result { get; set; } public string Message { get; set; } } }