I just copy from cs folder on integration package
<%@ Application Language="C#" %>
<%@ Import Namespace="CuteSoft.Chat" %>
<%@ Implements Interface="CuteSoft.Chat.IHttpApplicationConnectionStringProvider" %>
<%@ Implements Interface="CuteSoft.Chat.IHttpApplicationUserAdapter" %>
<%@ Implements Interface="CuteSoft.Chat.IHttpApplicationDataProvider" %>
<%@ Implements Interface="CuteSoft.Chat.IHttpApplicationSupportLogin" %>
<script RunAt="server" Language="C#">
#region IHttpApplicationConnectionStringProvider Members
//Step 1: Let CuteChat know your databse connection string
public string GetConnectionString(CuteSoft.Chat.UserIdentity user)
{
// EXAMPLE:
return System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"];
//return "NOT IMPLEMENTED";
}
#endregion
#region IHttpApplicationUserAdapter Members
//Step 2: Let CuteChat know who has logged in the website
public string GetUserUniqueName()
{
// EXAMPLE:
if (Context.User.Identity.IsAuthenticated)
return Context.User.Identity.Name;
return null;
//return "NOT IMPLEMENTED";
}
public CuteSoft.Chat.UserIdentity GetUserIdentity()
{
string uniquename = GetUserUniqueName();
if (uniquename == null)
{
return CuteSoft.Chat.UserIdentity.CreateNull();
}
CuteSoft.Chat.UserIdentity identity = new CuteSoft.Chat.UserIdentity(uniquename, null, Request.UserHostAddress);
return identity;
}
#endregion
#region IHttpApplicationDataProvider Members
//Step 3: Let CuteChat know your membership database information
//Check the user is an administrator or not.
public bool IsAdministrator(string useruniquename)
{
// EXAMPLE:
return CommunityServer.Users.FindUserByUsername(useruniquename).IsAdministrator;
//return "NOT IMPLEMENTED";
}
//Return user's display name
public string GetUserDisplayName(string useruniquename)
{
// EXAMPLE:
if (!Context.Request.IsAuthenticated)
return null;
return Context.User.Identity.Name;
//return "NOT IMPLEMENTED";
}
//Retrieves all the user's unique names in the database.
public string[] ListUserUniqueName()
{
// EXAMPLE:
CommunityServer.UserQuery query = new CommunityServer.UserQuery();
CommunityServer.Components.UserSet userset = CommunityServer.Users.GetUsers(query, true);
ArrayList names = new ArrayList();
foreach (CommunityServer.Components.User user in userset.Users)
{
if (user.IsAnonymous) continue;
names.Add(user.Username);
}
return (string[])names.ToArray(typeof(string));
//return "NOT IMPLEMENTED";
}
//Return an array of user names containing the input string.
public string[] SearchUserUniqueNameByDisplayName(string userDisplaName)
{
// EXAMPLE:
//CommunityServer.UserQuery query = new CommunityServer.UserQuery();
//query.SearchText = userDisplaName;
//query.IncludeHiddenUsers = true;
//query.SearchUsername = true;//there's no SearchDisplayName ?
//CommunityServer.Components.UserSet userset = CommunityServer.Users.GetUsers(query, true);
//ArrayList names = new ArrayList();
//foreach (CommunityServer.Components.User user in userset.Users)
//{
// if (user.IsAnonymous) continue;
// names.Add(user.Username);
//}
//return (string[])names.ToArray(typeof(string));
//return "NOT IMPLEMENTED";
if (userDisplaName == null || userDisplaName == "") return new string[0];
userDisplaName = userDisplaName.ToLower();
AdminDB admin = new AdminDB();
SqlDataReader reader = admin.GetUsers();
ArrayList names = new ArrayList();
while (reader.Read())
{
try
{
string val = reader.GetString(1);
if (val.ToLower().IndexOf(userDisplaName) != -1)
names.Add(val);
}
catch { }
}
return (string[])names.ToArray(typeof(string));
}
//Check the user is a lobby admin or not (only for integrated room).
public bool IsLobbyAdmin(string useruniquename, CuteSoft.Chat.CuteChatLobby lobby)
{
// EXAMPLE:
if (lobby.Integration == null) return false;
CommunityServer.Components.User user=CommunityServer.Users.FindUserByUsername(useruniquename);
if(user==null)
return false;
if (lobby.Integration.StartsWith("Forum:"))
{
int forumid = int.Parse(lobby.Integration.Substring(6));
CommunityServer.Discussions.Components.Forum forum = CommunityServer.Discussions.Components.Forums.GetForum(forumid);
if (forum == null)
{
return false;
}
return CommunityServer.Components.Permissions.ValidatePermissions(forum
, CommunityServer.Components.Permission.Administer
, user);
}
return false;
//return "NOT IMPLEMENTED";
}
#endregion
#region IHttpApplicationSupportLogin Members
//Step 4: Let CuteChat know your membership database information
//Check the user is an operator or not (only for live support).
public bool SupportLogin(string username, string password)
{
// EXAMPLE:
if (username == null) return false;
username = username.Trim();
if (username == "") return false;
if (password == null) return false;
////IMPORTANT: if the user is not the operator, do not return true;
////use the CuteChat API to check it
if (CuteSoft.Chat.ChatApi.FindOperator(username) == null)
return false;
////does the user exist?
CommunityServer.Components.User user = CommunityServer.Users.FindUserByUsername(username);
if (user == null)
return false;
////use CommunityServer API to validate the user
user = new CommunityServer.Components.User();
user.Username = username;
user.Password = password;
CommunityServer.Components.LoginUserStatus status = CommunityServer.Users.ValidUser(user);
if(status!=CommunityServer.Components.LoginUserStatus.Success)
{
return false;
}
////FORM-Authentication ,
System.Web.Security.FormsAuthentication.SetAuthCookie(user.Username, false, "/");
return true;
//return "NOT IMPLEMENTED";
}
// Fire when the conversation start
public void SupportInit()
{
//no auto login.
}
#endregion
</script>