2013-09-26 62 views
1

我已經有一個自定義的C#/ ASP.NET網站,其中包含一個母版頁與幾個子頁面。子頁面是相互關聯的。 在網站中,我也有幾個自定義實用程序類和從子頁面,我打電話給這些類。 該網站也連接到SQL數據庫,並從代碼它調用幾個自定義類庫進行數據處理。如何將我的自定義C#/ ASP.NET網頁集成到已經託管的DotNetNuke 7.0.1版網站上?

現在我需要將此自定義網站集成到DotNetNuke網站上。 我已經託管了7.0.1版本的DotNetNuke網站。

如何將我的網站集成到託管的DotNetNuke網站上?

我發現2個解決方案,
第一個是使用DNN Iframe模塊,但我不能使用該選項。 第二個選項是將單個網頁轉換爲usercontrols並添加爲DNN模塊,但在我的情況下,該網站有一個母版頁,相互關聯的子頁面和可用性類。因此,將每個頁面轉換爲usercontrols以創建DNN模塊將是一項艱鉅的任務。

任何人都可以提出一個更好的方法來將我的網頁集成到託管的DNN網站上。

回答

0

我們所做的只是保留2個網站。通過masterpage和DNN皮膚的相同樣式,它看起來像是最終用戶的一個網站。使用從DNN到Asp.NET網站的鏈接。您可以使用自定義roleprovider使用相同的權限在我的情況

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

的問題是,我cant't保持2個網站,我需要我的自定義網站整合到DNN的網站,這樣可以繼承一些DNN功能像給予角色和權限一樣,限制一些用戶訪問我網站中的某些特定頁面 – Shankar

+0

我們創建了一個使用DNN表的自定義RoleProvider –

相關問題