asp.net mvc - 根据用户ID和角色显示内容

时间:2017-02-20 22:05:06

标签: c# asp.net-mvc asp.net-identity

我正在开发一个asp.net mvc应用程序。我要求能够根据用户名和用户限制用户在特定页面上看到的内容。角色。用户名是DOMAIN \ Username格式的Windows身份验证名称,并将分配给一个或多个角色,这些角色将驻留在SQL数据库中。

基于以上所述,我需要一种方法,以便用户只能看到与其角色相关的信息。例如,在下图中,有3个图像代表用户可能访问的潜在应用程序。其中两个是绿色,一个是蓝色。认为这些是ROLE。如何确保属于太蓝的用户看不到两个绿色。 enter image description here

右上角的用户名是通过Razor中的function getNumber() { var num = 0; // this should be initialized var n = prompt("Please enter a number"); for(var i = 0; i < n; i++){ num += i; // add i document.getElementById("demo").innerHTML += num + " "; } } 功能检测到的。我当时认为从当前用户那里检测到的那么简单,然后在数据库中查询角色。那么我们如何根据这些角色限制内容呢?

奖金问题,我想要一个管理组件,允许具有admin角色的人通过查询组织帐户来分配新用户角色。有没有一种简单的方法来提供相关的搜索功能?

HTML(索引视图)

@User.Identity.Name

看起来像以下...... enter image description here

共享_Layout

<div class="row">
    <div class="col-md-4 portfolio-item">
        <a href="#">
            <img class="img-responsive" src="http://placehold.it/700x400" alt="">
        </a>
        <h3>
            <a href="#">Project Name</a>
        </h3>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam viverra euismod odio, gravida pellentesque urna varius vitae.</p>
    </div>
    <div class="col-md-4 portfolio-item">
        <a href="#">
            <img class="img-responsive" src="http://placehold.it/700x400" alt="">
        </a>
        <h3>
           <a href="#">Project Name</a>
        </h3>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam viverra euismod odio, gravida pellentesque urna varius vitae.</p>
    </div>
</div>

数据模型 enter image description here

1 个答案:

答案 0 :(得分:1)

关于第一个问题,用户如何能够或不能根据特定角色查看特定内容,您可以使用以下内容 - 对于管理员角色

if (User.IsInRole("admin"))
{
    <div class="col-md-4 portfolio-item">
        <a href="#">
            <img class="img-responsive" src="http://placehold.it/700x400" alt="">
        </a>
        <h3>
            <a href="#">Project Name</a>
        </h3>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam viverra euismod odio, gravida pellentesque urna varius vitae.</p>
    </div>
}

如果这不是你需要的,请告诉我,所以我可以给你任何其他想法!