user.identity.name 空
场景:User.Identity.Name 参数“username”不得替空
User.Identity.Name 参数“username”不得为空。
web.config文件:
------解决方案--------------------
帮顶一下吧。。。等楼下回答好学习
------解决方案--------------------
User.Identity.Name 哪里给这个赋值了
------解决方案--------------------
User 是不是空? User 是从哪里冒出来的?需不需要给这个对象赋值什么的?
------解决方案--------------------
------解决方案--------------------
你的用户登录了吗?
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>
------解决方案--------------------
你的用户登录了吗?