Re: global_asax do not implement IHttpApplicationDataProvider

  •  06-12-2006, 12:56 AM

    Re: global_asax do not implement IHttpApplicationDataProvider

    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>

View Complete Thread