当前位置: 代码迷 >> SharePoint >> sharepoint2013网站页面中怎么获得当前访问者的用户信息
  详细解决方案

sharepoint2013网站页面中怎么获得当前访问者的用户信息

热度:245   发布时间:2016-05-02 06:55:41.0
sharepoint2013网站页面中如何获得当前访问者的用户信息
小弟初接触sharepoint
现在在sharepoint2013的网站页面中嵌入报表链接,需要将用户的信息作为参数传入到报表中,以下是一个网站页面中的部分代码-报表URL
    user_id后面是需要传入用户的信息
href="http&#58;//z69-tstreport&#58;8012/ReportServer/Pages/ReportViewer.aspx?/New_Report/Report1&amp;rs&#58;Command=Render&amp;user_id=<%= System.Web.HttpContext.Current.User.Identity.Name.ToString() %>"

度娘上找到获取用户信息的代码,但是我打开链接到报表上,用户的信息并没有获得到,而且传入这个信息<%= System.Web.HttpContext.Current.User.Identity.Name.ToString() %>"

.NET
System.Web.HttpContext.Current.User.Identity.Name.ToString(); 
或者:MOSS
 SPContext.Current.Site.OpenWeb().CurrentUser.Name.ToString(); 

请问大神们这个问题该怎么处理


------解决思路----------------------
要看报表,如果是SharePoint页面的话,调用SharePoint对象模型封装一个用户控件或者WebPart都行;都能获取到
SPContext.Current.Site.OpenWeb().CurrentUser.Name即可
------解决思路----------------------
楼上正解啊,用SPContext上下文
------解决思路----------------------
奇怪 你要代码?
 SPUser getUser = SPContext.Current.Web.CurrentUser;
                    
                    Session["userName"] = getUser.Name;
                    Session["loginName"] = getUser.LoginName;
                    HiddenLoginName.Value = getUser.LoginName;
                    HiddenFieldAuthor.Value = SPContext.Current.Web.CurrentUser.LoginName;

getuser 是用户所有信息
------解决思路----------------------
引用:
Quote: 引用:

要看报表,如果是SharePoint页面的话,调用SharePoint对象模型封装一个用户控件或者WebPart都行;都能获取到
SPContext.Current.Site.OpenWeb().CurrentUser.Name即可


雨哥,根据你的那个sharepoint自定义用户控件创建博客,我都是按照你的步骤,最后打开页面出现
未能加载文件或程序集“$SharePoint.Project.AssemblyFullName$”或它的某一个依赖项。系统找不到指定的文件。”的错误。
我操作的步骤
1、将SP2013CustomUserControl项目添加到TEMPLATE下的CONTROLTEMPLATES文件中,最后部署
2、将ascx用户控件复制到C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\CONTROLTEMPLATES文件夹下
3、通过Designer工具对需要展示的网站页面增加对应的代码


是不是需要开启哪项应用程序服务或者配置网站的web.config文件,之前为了能在页面中写代码,增加了
<pageparserpath virtualpath="/*" compilationmode="always" allowserversidescript="true" includesubfolders="true" /> 

你只拷贝了ascx 吗? ascx关联的cs文件拷贝了吗?我不知道你怎么部署的,感觉是你的项目的dll没有被部署到GAC里,所以找不到。
------解决思路----------------------
引用
将ascx用户控件复制到C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\CONTROLTEMPLATES文件夹下


部署方法不对,这个文件不是手动拷贝的。你拷贝了这个文件,但是ascx关联的dll没有部署。

使用VS的话,F5 就直接部署上了(或者手动安装solution部署)。 但是不是这么手动拷贝文件部署的。