Forguncyではロールにユーザーを追加するメソッド、およびロールからユーザーを削除するメソッドを提供しています。
Forguncy.addUserToRole(userName, roleName, successCallback, errorCallback)
ロールを指定してユーザーを追加します。ユーザーはすでに存在しているユーザーである必要があります。フォーム認証のユーザーとWindows認証のユーザーのどちらのユーザーでも指定可能です。
userName |
Type: String |
ロールへ追加したいユーザーのユーザー名。 |
roleName |
Type: String |
追加したいロールの名称。 |
successCallback |
Type: Function() |
ロールへのユーザーの追加が成功したときに実行するコールバック関数を指定します。 |
errorCallback |
Type: Function( String errorMessage ) |
ロールへのユーザーの追加が失敗したときに実行するコールバック関数を指定します。 引数にエラーメッセージが渡されます。 |
Forguncy.addUserToRole("user1", "マネージャー", function () { // ロールへのユーザーの追加に成功した場合 alert("ロールにユーザーが追加されました。"); }, function (errorMessage) { // ロールへのユーザーの追加に失敗した場合 alert(errorMessage); } );
Forguncy.deleteUserFromRole(userName, roleName, successCallback, errorCallback)
ロールを指定してユーザーを削除します。ユーザーはすでに指定したロールのメンバーである必要があります。フォーム認証のユーザーとWindows認証のユーザーのどちらのユーザーでも指定可能です。
userName |
Type: String |
ロールから削除したいユーザーのユーザー名。 |
roleName |
Type: String |
ユーザーをロールから削除したい場合のそのロールの名称。 |
successCallback |
Type: Function() |
ロールからユーザーの削除が成功したときに実行するコールバック関数を指定します。 |
errorCallback |
Type: Function( String errorMessage ) |
ロールからユーザーの削除が失敗したときに実行するコールバック関数を指定します。 引数にエラーメッセージが渡されます。 |
Forguncy.deleteUserFromRole("user1", "マネージャー" 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.AddUserToRole("user2", "マネージャー"); forguncyUserOperator.DeleteUserFromRole("user1", "マネージャー"); } } class ForguncyUserOperator { string _baseUrl; string _administratorName; string _administratorPassword; public ForguncyUserOperator(string baseUrl, string administratorName, string administratorPassword) { _baseUrl = baseUrl; _administratorName = administratorName; _administratorPassword = administratorPassword; } public void AddUserToRole(string userName, string roleName) { var requestUrl = "Account/AddUserToRole"; var request = new { userName = userName, roleName = roleName }; ExecuteAction(requestUrl, request); } public void DeleteUserFromRole(string userName, string roleName) { var requestUrl = "Account/DeleteUserFromRole"; var request = new { userName = userName, roleName = roleName }; 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; } } }