我已经有一个自定义的C#/ASP.NET网站,它由一个母版页和几个子页组成。子页面是相互关联的。在这个网站上,我也有几个自定义的实用程序类,并且从子页面调用这些类。该网站还连接到SQL数据库,并从代码中调用几个自定义类库进行数据处理。
现在我需要集成这个自定义网站到一个DotNetNuke网站。我已经托管了7.0.1版的DotNetNuke网站。
如何将我的网站集成到托管的DotNetNuke网站?
我找到了两个解决方案,
第一个是使用DNN Iframe模块,但我不能使用该选项。第二种选择是将单个网页转换为用户控件,并添加为DNN模块,但在我的情况下,网站有一个母版页,相互关联的子页和实用类。因此,为了创建DNN模块,将每个页面转换为用户控件将是一项艰巨的任务。
谁能建议一个更好的方法将我的网页集成到托管的DNN网站上。
发布于 2013-09-26 17:52:17
我们所做的是保留两个网站。通过相同样式的母版页和DNN皮肤,它看起来像一个最终用户的网站。使用从DNN到Asp.NET网站的链接。您可以使用自定义角色提供程序来使用相同的授权
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
}https://stackoverflow.com/questions/19024691
复制相似问题