Discuz!NT官方社区

首页 » Discuz!NT开发与测试 » Discuz!NT整合 » 请帮忙看看错误:Discuz.Data.DatabaseProvider”的类型初始值设定项引发异常
netboy - 2007-10-25 14:30:00
我在自己的登录代码中调用LoginBBS(string username, string pwd),来实现单点登录。网站的用户名和口令均与Discuznt2.0相同,但分别防在两个数据库中。在LoginBBS(string username, string pwd)中运行到int num = Users.CheckPassword(username, pwd, true);时出现一个错误:Discuz.Data.DatabaseProvider”的类型初始值设定项引发异常。请各位高手帮忙看看是什么问题?

protected void ibLogin_Click(object sender, ImageClickEventArgs e)
{
        string UserName = tUserName.Text;
        string PassWord = tPassword.Text;
        LoginBBS(UserName, UserName)
        Users users = new Users();
        CMS.BLL.Users bll = new CMS.BLL.Users();
        CMS.Model.Users model = bll.GetModel(UserName,PassWord);
        if (model.ID != 0)
        {
            Session["UserID"] = model.ID;
            Session["UserName"] = model.UserName;
            Session["Role"] = model.Role;
            Session["Dept"] = model.Dept;
            Response.Redirect("Index.aspx");
        }
        else
        {
            Response.Write("<script language=JavaScript>window.alert('登录失败!');window.location.href='Login.aspx';</script>");
}


public static bool LoginBBS(string username, string pwd)
{
    int num = Users.CheckPassword(username, pwd, true);
    if (num == -1)
    {
        return false;
    }
    LoginLogs.DeleteLoginLog(DNTRequest.GetIP());
    UserCredits.UpdateUserCredits(num);
    string str = GeneralConfigs.GetConfig().get_Passwordkey();
    ForumUtils.WriteUserCookie(num, -1, str, 0, -1);
    OnlineUsers.UpdateAction(OnlineUsers.UpdateInfo(str, 10).get_Olid(), UserAction.Login.get_ActionID(), 0, 10);
    Users.UpdateUserLastvisit(num, DNTRequest.GetIP());
    return true;
}
长空 - 2007-12-15 11:27:00
这问题没有知道?顶一下,支持技术性问题。
no10pc - 2007-12-15 21:15:00
LoginBBS(UserName, UserName)
这句明显错误
no10pc - 2007-12-15 21:25:00
discuz.net的COOKIES登录如果你的下面代码
    LoginLogs.DeleteLoginLog(DNTRequest.GetIP());
    UserCredits.UpdateUserCredits(num);
    string str = GeneralConfigs.GetConfig().get_Passwordkey();
    ForumUtils.WriteUserCookie(num, -1, str, 0, -1);
    OnlineUsers.UpdateAction(OnlineUsers.UpdateInfo(str, 10).get_Olid(), UserAction.Login.get_ActionID(), 0, 10);
    Users.UpdateUserLastvisit(num, DNTRequest.GetIP());
    return true;
如果不是在论坛同一个站点下写的,登录不会成功的.建议楼上看一下Cookies的Domain方面的信息.
不同站下的COOKIES如果DOMAIN不一样,即使KEY一样,也是不行的.
discuz.net的连接字中放在DNT.CONFIG里.要指定数据库类型的.


如果你把论坛与程序放一起,你的WEB.CONFIG会很乱的.
Discuz.Config.GeneralConfigInfo config = Discuz.Config.GeneralConfigs.GetConfig();
你在New  USER的时候会调用config信息,你要把config实例化.还有论坛config文件夹也要考过来,还有web.config和dnt.config
当然还有BIN文件.
1
查看完整版本: 请帮忙看看错误:Discuz.Data.DatabaseProvider”的类型初始值设定项引发异常