user.identity.name 空

场景:User.Identity.Name 参数“username”不得替

User.Identity.Name 参数“username”不得为空。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;

public partial class ShowSecurityTrimming : System.Web.UI.Page
{   
    protected void Page_Load(object sender, EventArgs e)
    {      
        if(!Page.IsPostBack)
            foreach (ListItem item in cbl.Items)
            {
                if (!Roles.RoleExists(item.Text))
                {
                    Roles.CreateRole(item.Text);
                    
                    Roles.AddUserToRole(User.Identity.Name, item.Text);                    
                }
                
                
            }       
    }
    protected void btn_Click(object sender, EventArgs e)
    {
        foreach(ListItem item in cbl.Items)
        {
            if(item.Selected)
            {
                if(!User.IsInRole(item.Text))
                    Roles.AddUserToRole(User.Identity.Name,item.Text);
            }
            else
            {
                if(User.IsInRole(item.Text))
                {
                    Roles.RemoveUserFromRole(User.Identity.Name,item.Text);                
                }
            }
        }
        Response.Redirect(Request.Path);
    }
    void Page_PreRender(object sender, EventArgs e)
    {
        foreach (ListItem item in cbl.Items)
            item.Selected = User.IsInRole(item.Text);
    }
}





<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="ShowSecurityTrimming1.aspx.cs" Inherits="ShowSecurityTrimming" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style type="text/css">
        html {
            background-color: silver;
        }
        .column {
            float: left;
            width: 400px;
            border: solid 1px black;
            background-color: white;
            padding: 10px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div class="column">
        <asp:CheckBoxList id="cbl" runat="server">
            <asp:ListItem Text="RoleA" Selected="True" />
            <asp:ListItem Text="RoleB" />
            <asp:ListItem Text="RoleC" />
        </asp:CheckBoxList>
        <asp:Button ID="btn" Text="Select" OnClick="btn_Click" runat="server" />
    
    </div>
        <div class="column">
            <asp:TreeView ID="trV" DataSourceID="src" runat="server" />
            <asp:SiteMapDataSource ID="src" runat="server" />
        </div>
    </form>
</body>
</html>



web.config文件:

<configuration>

    <system.web>
      <compilation debug="false" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
      
      <authentication mode="Windows"/>
    
      <roleManager enabled="true" />

      <siteMap defaultProvider="MySiteMapProvider">
        <providers>
          <add name="MySiteMapProvider" type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true"
               siteMapFile="Web.sitemap"/>
        </providers>
      </siteMap>
    </system.web>
  
</configuration>
User.Identity.Name  authentication

------解决方案--------------------
帮顶一下吧。。。等楼下回答好学习
------解决方案--------------------
User.Identity.Name  哪里给这个赋值了
------解决方案--------------------
User 是不是空? User 是从哪里冒出来的?需不需要给这个对象赋值什么的?
------解决方案--------------------
<authentication mode="Windows" />
    <authorization>
      <deny users="?" />
    </authorization>

------解决方案--------------------
你的用户登录了吗?