我创建了一个自定义标识,主体和成员资格提供程序,并通过UserContext类访问它们(所有这些都位于App_code中):
public static class UserContext
{
public static CustomPrincipal User
{
get
{
return (CustomPrincipal)HttpContext.Current.User;
}
}
public static CustomIdentity Identity
{
get
{
return (CustomIdentity)HttpContext.Current.User.Identity;
}
}
}
从控制器类,我可以做到:
string userName = UserContext.Identity.Name;
但是,从视图中执行以下操作时:
@Html.Encode(UserContext.Identity.Name)
我在运行时收到以下错误:
两者中都存在“Website.Infrastructure.UserContext”类型 'c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET 文件\根\ 533b7079 \ 25c5a39c \组件\ DL3 \ 13397e32 \ 308e247b_c8efce01 \ Website.DLL” 和'c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET 文件\根\ 533b7079 \ 25c5a39c \ App_Code.-ze7s5wd.dll'
我已清除了临时/缓存IISExpress文件夹等ensured that I'm using System.Web v4.0.0,并尝试在共享布局视图顶部和相关视图的Web.config中添加using [namespace]
。部分。
查看视图,我在
下看到编译错误(建议?)UserContext
'xxx'类型存在于'[website root]'和'app_Code'中 MVC视图
建议?
答案 0 :(得分:0)
我想发表评论,但我没有足够的评论意见,所以给出答案。
尝试使用完全限定的类名,如
<强> Namespace.UserContext 强>
,这可能会解决冲突。
答案 1 :(得分:0)
工作正常。我注意到在原始描述中添加了对视图web.config的引用。这是不正确的和视图web.config&lt;&gt;到应用程序的web.config。
将实用程序项目的引用添加到主网站
构建
在您的情况下,从任何其他配置文件中的其他地方获取引用。如果您愿意,我可以将项目提供给您