标签: dotnetnuke-module

DotNetNuke检索给定UserID的UserInfo

在dotnetnuke框架中是否存在允许我将其传递给userId并且它将返回填充有该userId的详细信息的UserInfo对象的东西.

如果不是这样做的正常方法是什么?

dotnetnuke dotnetnuke-module

4
推荐指数
2
解决办法
2万
查看次数

如何在codebehind中更新dotnetnuke userprofile图像?

我正在构建我自己的"user profile"模块,其中一个选项,用户可以更改其默认dnn配置文件图像.我在"代码背后"这样做时遇到了问题.我在用c#.

这是我到目前为止:

UserInfo myDnnUser = this.UserInfo;
myDnnUser.Profile.InitialiseProfile(PortalId);

myDnnUser.Profile.SetProfileProperty("Photo", "new filename");
myDnnUser.Profile.SetProfileProperty("PhotoURL", "new url");

ProfileController.UpdateUserProfile(myDnnUser);
Run Code Online (Sandbox Code Playgroud)

但它不起作用,当我查看dnn使用的"文件"表时,它仍然是相同的(旧)文件名.

有任何想法吗?

asp.net dotnetnuke dotnetnuke-module

4
推荐指数
1
解决办法
3378
查看次数

我希望我的DotNetNuke模块能够在尽可能多的版本下工作,同时避免程序集绑定重定向

我正在开发DotNetNuke模块,并且在安装或分发它们之前自然希望它们被编译.在过去,我只是通过浏览到本地DotNetNuke安装的/ BIN文件夹来引用特定版本的DotNetNuke.dll.

这个引用允许我使用DNN基类并在那些基础上创建我自己的类.我还在我需要的DNN命名空间/类中使用各种辅助方法.(即从其PortalModuleBase,ModuleSettingsBase创建派生类,并使用其本地化类替换Microsoft的ASP.NET实现提供的类.)

我已经能够使用这种方法来制作直接的DLL引用(Copy Local = True,Specific Version = False),因为到目前为止我一直在将这些模块安装到我维护的客户端网站上.因此,我至少保留了他们开发的DotNetNuke版本 - 或更新版本.最近,我在开发中引用了6.1.3.108.

注意:这会自动将以下关联的DLL复制到我的模块的/ BIN目录中:

  • DotNetNuke.dll
  • DotNetNuke.Instrumentation.dll
  • dotnetnuke.log4net.dll
  • DotNetNuke.Services.Syndication.dll
  • DotNetNuke.Web.Client.dll
  • DotNetNuke.WebControls.dll
  • DotNetNuke.WebUtility.dll

将它安装到NEWER版本的DotNetNuke网站上工作正常,这不是一个糟糕的开始.

我一直想知道的是,是否有一种非hackish方式使我的模块对DLL的次要,构建或修订级别不敏感?

我意识到这是我的责任,确保产品(如果在"中档"版本上开发)仍然可以在更早的版本和更新版本的产品上运行.也就是说,我觉得我可以对这些版本进行彻底的测试.对我来说,这是必须在开发中运行OLDEST主要版本的优先选择.

换句话说,我宁愿不开发6.0.0.0的引用,只是因为它可以在6.xxx上运行而不需要额外的努力.我只会这样做,如果有人没有一个很好的方式让我做引用说,6.1.3.108工作稍早或更晚的版本.(当然,我可以为主要版本更改制作不同的模块,例如5.xxx或7.xxx)

提前致谢!

versioning dotnetnuke assemblies dotnetnuke-module

4
推荐指数
1
解决办法
1189
查看次数

DotNetNuke - 模块设置在新用户控件上消失

我有一个DNN模块,它呈现一个用户控件(view.ascx)

一切正常(我已登录),我收到了DNN设置菜单.

但是当我添加另一个控件并加载它时:

string url = Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "View_Details", "mid=" + ModuleId.ToString());
Response.Redirect(url);
Run Code Online (Sandbox Code Playgroud)

新控件加载时,我丢失了设置链接.

有任何想法吗?是否有某个属性可以打开加载的用户控件的设置?

dotnetnuke dotnetnuke-5 dotnetnuke-module

3
推荐指数
1
解决办法
1055
查看次数

一个DNN模块中的异常会阻止处理页面上的所有其他模块

我正在研究DNN 6.0网站上的一般问题:一个DNN模块中的无法处理的异常会影响处理页面上的所有其他模块.例:

假设我有DNN页面,上面有两个模块.Module1具有onclick事件处理程序抛出异常的按钮.Module2只有一些标签文字.

因此,当用户按下Module1.button时,我们看到错误而不是Module1,而Module2不可见.

是否有可能在一个地方捕获所有这些Module1异常并让DNN处理页面上的其他模块?(我知道最简单/最简单的方法是在button.onclick中编写try/catch块,但是我不能在我们创建的所有模块中实现这样的方法,因为它需要很长时间.)

c# dotnetnuke dotnetnuke-module

3
推荐指数
1
解决办法
589
查看次数

以其他用户身份登录时丢失会话/ cookie

我正在构建dnn模块,允许登录用户以其他用户身份登录.
但我这里有一些有线问题.
这是我注销当前用户并以另一个用户身份登录的方式:

UserInfo userInfo = UserController.GetUserById(portalId, userId);
if (userInfo != null)
{                
    DataCache.ClearUserCache(this.PortalSettings.PortalId, Context.User.Identity.Name);

    if (Session["super_userId"] == null)
    {
        Session["super_userId"] = this.UserId;
        Session["super_username"] = this.UserInfo.Username;
    }

    HttpCookie impersonatorCookie = new HttpCookie("cookieName");
    impersonatorCookie.Expires = DateTime.Now.AddHours(1);
    Response.Cookies.Add(impersonatorCookie);

    Response.Cookies["cookieName"]["super_userId"] = this.UserId.ToString();
    Response.Cookies["cookieName"]["super_username"] = this.UserInfo.Username;

    PortalSecurity objPortalSecurity = new PortalSecurity();
    objPortalSecurity.SignOut();

    UserController.UserLogin(portalId, userInfo, this.PortalSettings.PortalName, Request.UserHostAddress, false);

    Response.Redirect(Request.RawUrl, true);
}
Run Code Online (Sandbox Code Playgroud)

PageLoad()我尝试从这个cookie读取值但它没有读取任何东西:

try
{
    string super_userId = Request.Cookies["cookieName"]["super_userId"];
    string super_username = Request.Cookies["cookieName"]["super_username"];

    if (!String.IsNullOrEmpty(super_userId))
    {
        this.Visible = true;
        this.lblSuperUsername.Text = Session["super_username"].ToString(); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net dotnetnuke dotnetnuke-module

3
推荐指数
1
解决办法
1085
查看次数

DotNetNuke 在每个页面上都包含 javascript

我想创建一个模块,该模块基本上将 javascript 包含到 dotnetnuke 站点的每个页面上。我可以在当前页面中包含一个js文件,

ClientResourceManager.RegisterScript(this.Page, 
"~/DesktopModules/AuthenticationServices/ZapperScanToLogin/view.js", 
FileOrder.Js.jQuery); 
Run Code Online (Sandbox Code Playgroud)

但我真正想做的是在主页上安装我的模块,它将在 dnn 站点的每个页面上包含 javascript。这可能吗,我该怎么做?

javascript jquery dotnetnuke dotnetnuke-module

3
推荐指数
1
解决办法
4544
查看次数

访问 DotNetNuke 模块内的 .config 文件

我已经实现了一个使用用户定义控件的DNN模块(这个用户定义控件已经实现了GoogleAnalytics跟踪供我们自己使用)。

该控件需要访问配置文件才能获取我们的谷歌分析帐户的配置设置。例如账户代码(UA-dddddd-dd)等。

我的问题:由于我在 DotNetNuke 上安装模块,放置配置文件的正确位置在哪里,或者默认情况下它将访问什么配置文件?

下面提供了控件中尝试访问配置文件的代码段:

string path = Assembly.GetExecutingAssembly().CodeBase;
FrameworkConfig.instance = new FrameworkConfig(ConfigurationManager.OpenMappedMachineConfiguration(new ConfigurationFileMap(path + ".config")));
Run Code Online (Sandbox Code Playgroud)

注意:FrameworkConfig是对象的包装类System.Configuration

简而言之,我需要知道 Assembly.GetExecutingAssembly().CodeBase通过 DNN 模块调用时返回什么?其他选择?

c# asp.net configuration-files dotnetnuke-module dotnetnuke-7

3
推荐指数
1
解决办法
2855
查看次数

在 DotNetNuke 中获取当前用户

一旦当前登录的用户到达我们的 DotNetNuke 页面上托管的我的应用程序,我就会尝试获取他们。该应用程序是用 React.JS 构建的,我在 HTML 模块内渲染它。当用户到达应用程序时,我将执行 ComponentDidMount 方法调用,并向我的 .ascx 文件发起 AJAX 请求以获取当前用户。(ComponentDidMount 仅在应用程序加载时自动调用一次 - 对于所有阅读本文的 .NET 用户)。进入 ASCX 文件后,我将执行下面的代码,但只获得“user”的输出。我是否应该调用一个类来在另一个文件中使用此令牌?我可以在下面的代码中做什么来让当前用户登录到该站点(遗憾的是,DNN 不使用会话变量,仅使用令牌)。

.ascx 代码:

<%   
    Response.Write("user " & [User:UserName])    
%>
Run Code Online (Sandbox Code Playgroud)

.net dotnetnuke dotnetnuke-module reactjs

3
推荐指数
1
解决办法
2491
查看次数

如何将JQuery导入自定义dnn模块

我已经创建了应该使用一些JQuery插件的自定义DNN模块.
我加载插件很好.
但得到错误:

Uncaught TypeError: undefined is not a function imagesloaded.js?cdv=18:93
Uncaught TypeError: Object [object Object] has no method 'imagesLoaded' Masonry:755
GET http://dnn7site/jquery.min.map 404 (Not Found) Masonry:464
GET http://dnn7site/resources/shared/scripts/jquery/jquery.min.map 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

我认为这是因为JQuery我的自定义模块中没有导入.我包括其他JS文件,如:

<dnn:DnnJsInclude runat="server" FilePath="~/DesktopModules/com.demo.masonry/Scripts/jquery.infinitescroll.min.js"  />
<dnn:DnnJsInclude runat="server" FilePath="~/DesktopModules/com.demo.masonry/Scripts/masonry.pkgd.js"  />
<dnn:DnnJsInclude runat="server" FilePath="~/DesktopModules/com.demo.masonry/Scripts/imagesloaded.js"  />
Run Code Online (Sandbox Code Playgroud)

但我不知道如何导入JQuery,任何帮助?
我正在使用DNN 7.1.1

javascript asp.net jquery dotnetnuke dotnetnuke-module

2
推荐指数
1
解决办法
4997
查看次数