小编Asp*_*Asp的帖子

在razor页面中检查登录用户角色

@if (Request.IsAuthenticated && User.Identity.Name=="administrator")
{
     <div id="sidebar">
        <div class="module">
        <ul class="menu">
                            <li>@Html.ActionLink("Home", "Index", "Home")</li>
                            <li>@Html.ActionLink("About", "About", "Home")</li>
                            <li>@Html.ActionLink("Contact", "Contact", "Home")</li>
                        </ul>
         </div>
         <div class="mainContent">
             Hello, @User.Identity.Name !
         </div>
     </div>
Run Code Online (Sandbox Code Playgroud)

这是我的布局,如果用户被认证为管理员,但这种检查看起来不好,我需要检查用户的角色而不是他的名字.

这是控制器方法

    public ActionResult AuthenticatedUserLayout(string username) 
    {
        var lst=userContext.UserProfiles.ToList();
        var user = lst.Select(u => u.UserName == username);

        if(IsAdmin(Session["LoginUser"].ToString())) return View(user); else return Index();
    }
Run Code Online (Sandbox Code Playgroud)

我也发现这return View(user)不好,因为我不知道如何使用它user.

c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

51
推荐指数
3
解决办法
6万
查看次数

为什么我的测试项目没有出现在测试资源管理器上

我正在使用VS2012(v110)我创建了一个简单的dll应用程序,只有一个函数和一个测试项目来测试dll函数.我将这两个项目设置为win32的调试版本,并尝试清理并重建两个项目但我没有看到任何测试要在测试资源管理器窗口上运行.

我也已经在测试项目中引用了Dll项目.

为什么测试资源管理器窗口中没有显示任何内容?

c# c++ vb.net unit-testing visual-studio-2012

5
推荐指数
1
解决办法
4425
查看次数