首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将我的自定义C#/ASP.NET网页集成到已经托管的DotNetNuke 7.0.1版网站上?

如何将我的自定义C#/ASP.NET网页集成到已经托管的DotNetNuke 7.0.1版网站上?
EN

Stack Overflow用户
提问于 2013-09-26 17:41:01
回答 1查看 218关注 0票数 1

我已经有一个自定义的C#/ASP.NET网站,它由一个母版页和几个子页组成。子页面是相互关联的。在这个网站上,我也有几个自定义的实用程序类,并且从子页面调用这些类。该网站还连接到SQL数据库,并从代码中调用几个自定义类库进行数据处理。

现在我需要集成这个自定义网站到一个DotNetNuke网站。我已经托管了7.0.1版的DotNetNuke网站。

如何将我的网站集成到托管的DotNetNuke网站?

我找到了两个解决方案,

第一个是使用DNN Iframe模块,但我不能使用该选项。第二种选择是将单个网页转换为用户控件,并添加为DNN模块,但在我的情况下,网站有一个母版页,相互关联的子页和实用类。因此,为了创建DNN模块,将每个页面转换为用户控件将是一项艰巨的任务。

谁能建议一个更好的方法将我的网页集成到托管的DNN网站上。

EN

回答 1

Stack Overflow用户

发布于 2013-09-26 17:52:17

我们所做的是保留两个网站。通过相同样式的母版页和DNN皮肤,它看起来像一个最终用户的网站。使用从DNN到Asp.NET网站的链接。您可以使用自定义角色提供程序来使用相同的授权

代码语言:javascript
复制
public class DNNRoleProvider : System.Web.Security.RoleProvider
{
    public override string[] GetRolesForUser(string username)
    {
        List<string> roles = new List<string>();
        using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DNNDB"].ConnectionString))
        {
            con.Open();
            string sql = "SELECT r.RoleName FROM dbo.UserRoles ur INNER JOIN dbo.Roles r on ur.RoleID = r.RoleID INNER JOIN dbo.Users u ON u.UserID = ur.UserID WHERE u.Username = @username";
            SqlCommand cmd = new SqlCommand(sql, con);
            cmd.CommandType = CommandType.Text;
            cmd.Parameters.Add(new SqlParameter("username", username));
            SqlDataReader reader = cmd.ExecuteReader();
            using (reader)
            {
                while (reader.Read())
                {
                    roles.Add(reader["RoleName"].ToString());
                }
            }

            return roles.ToArray();
        }
    }

    public override bool IsUserInRole(string username, string roleName)
    {
        bool ret = false;

        using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DNNDB"].ConnectionString))
        {
            con.Open();
            string sql = "SELECT count(0) FROM dbo.UserRoles ur INNER JOIN dbo.Roles r on ur.RoleID = r.RoleID INNER JOIN dbo.Users u ON u.UserID = ur.UserID WHERE u.Username = @username and r.RoleName = @rolename";
            SqlCommand cmd = new SqlCommand(sql, con);
            cmd.CommandType = CommandType.Text;
            cmd.Parameters.Add(new SqlParameter("username", username));
            cmd.Parameters.Add(new SqlParameter("rolename", roleName));
            SqlDataReader reader = cmd.ExecuteReader();
            using (reader)
            {
                if (reader.Read())
                {
                    ret = reader[0].ToString() == "0" ? false : true;
                }
            }
        }

        return ret;
    }

    //rest of interface implementation

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19024691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档