显示用户名的WebPart

***********************************************************************
*                              版权声明
*      此文章为ocean所有,版权归ocean所有,任何网
* 站和 媒体转载必须包含此段声明,否则将视为侵权,作
* 者将保留一切权力。此声明为此文章中不可或缺的一部分。
* 作者网名:ocean
* 作者email:ocean@forever.net.cn
* 作者网站:http://www.oceanstudio.net
*                http://sps.oceanstudio.net
* 作者blog:博客园,http://www.cnblogs.com/ocean
*                     Ocean's blog,http://www.oceanstudio.net/sps/blog
* 此文章发表时间:2005年3月8日
************************************************************************

    有的朋友询问如何能够显示用户的信息,其实这个很简单,就顺手作了一个。效果图如下:

 

 

 

    上面是8个例子。

    代码可以点击此处下载。

    同时可以点击此处查看此WebPart的演示效果。

    同时你可以从 http://www.oceanstudio.net/sps/Lists/webpart/AllItems.aspx 查看其它的WebPart。

    运行时请注意权限,将权限设置成Full,修改Web.config如下:<trust level="Full" originUrl="" />
    这个WebPart其实很简单,核心代码也很少,我做的相对比价灵活,你可以输入html代码来控制用户名显示的格式。

    得到当前的用户,主要依靠下面两句代码。

    SPWeb contextWeb = SPControl.GetContextWeb(this.Context);
    SPUser currentUser = contextWeb.CurrentUser;

    然后可以通过currentUser.Name和currentUser.LoginName来得到显示名称和登录名。

    如果直接写这个语句,那么匿名用户就会提示输入用户名和密码,所以我们还需要先判断是否为匿名用户。判断是否为匿名用户通过this.Context.Request.IsAuthenticated,未被验证的就是匿名用户。

    主要代码如下:


protected override void RenderWebPart(HtmlTextWriter output)
        
{
            
try 
            
{
                
if (!this.Context.Request.IsAuthenticated) 
                
{
                    output.Write(Text.Replace(
"{UserName}",this.AnonyName));
                }

                
else 
                
{
                    SPWeb contextWeb 
= SPControl.GetContextWeb(this.Context);
                    SPUser currentUser 
= contextWeb.CurrentUser;
                    
string DisplayName = currentUser.Name;
                    
if (DisplayName == null || DisplayName == ""
                    
{
                        DisplayName 
= currentUser.LoginName;
                    }

                    output.Write(Text.Replace(
"{UserName}",DisplayName));
                }

            }

            
catch (Exception e) 
            
{
                output.WriteLine(e.ToString());
            }

        }

   


    欢迎访问海洋工作室( http://sps.oceanstudio.net

原文地址:https://www.cnblogs.com/ocean/p/115136.html