用户角色,显示屏幕

时间:2015-02-26 18:36:56

标签: asp.net-mvc

我想只向没有登录的用户显示一个弹出的只读屏幕" Admin"。因此所有其他用户只能看到Popup只读屏幕。

我这样试试:

@if (!User.Identity.IsAuthenticated || !User.IsInRole("Admin"))
{


<div id="eventContent" title="Event Details" style="display:none">


    Date: <span id="startTime"></span><br>
    Start event: <span id="eventTime"></span><br>
    Duration: <span id="eventDuration"></span><br><br>

</div>
}

谢谢

我会更清楚

我有两个屏幕:

@if (User.Identity.IsAuthenticated && !User.IsInRole("Admin"))
{


<div id="eventContent" title="Event Details" style="display:none">


    Date: <span id="startTime"></span><br>
    Start event: <span id="eventTime"></span><br>
    Duration: <span id="eventDuration"></span><br><br>

</div>
}

<div class="container">



    <div id='calendar' style="width:65%"></div>

</div>

@if (User.Identity.IsAuthenticated || Context.User.IsInRole("Admin"))
{
    <div id="popupEventForm" class="modal hide" style="display: none;">
        <div class="modal-header"> <h3>&nbsp; &nbsp;Appointment</h3></div>
        <div class="modal-body">
            <form id="EventForm" class="well">
                <input type="hidden" id="eventID">
                <div class="form-group">
                    <label>Event title</label>
                    <input type="text" id="eventTitle"><br />
                </div>
                <div class="form-group">
                    <label>Scheduled date</label>
                    <input type="text" id="eventDate" readonly><br />
                </div>
                <div class="form-group">
                    <label>Scheduled time</label>
                    <input type="text" id="eventTime"><br />
                </div>
                <div class="form-group">
                    <label>Appointment length (minutes)</label>
                    <input type="text" id="eventDuration"><br />
                </div>
            </form>
        </div>
        <div class="modal-footer">
            <button type="button" id="btnPopupCancel" data-dismiss="modal" class="btn btn-mini">Cancel</button>
            <button type="button" id="btnPopupSave" data-dismiss="modal" class="btn btn-success ">Save event</button>
            @*<button type="button" id="btnPopupUpdate" data-dismiss="modal" class="btn btn-warning">Update event</button>*@
            <button type="button" id="btnPopupDelete" data-dismiss="modal" class="btn btn-danger right ">Delete event</button>
        </div>
    </div>
}

eventContent - 适用于非管理员(只读)的用户,另一个屏幕适用于管理员,管理员可以在其中添加议程项目。但是,如果我现在点击议程项目(未以管理员身份登录),我会看到两个屏幕

Oke,我找到了它:

@if ( !Context.User.IsInRole("Admin"))
{

<div id="eventContent" title="Event Details" style="display:none">


    Date: <span id="startTime"></span><br>
    Start event: <span id="eventTime"></span><br>
    Duration: <span id="eventDuration"></span><br><br>

</div>
}

else



{
    <div id="popupEventForm" class="modal hide" style="display: none;">
        <div class="modal-header"> <h3>&nbsp; &nbsp;Appointment</h3></div>
        <div class="modal-body">
            <form id="EventForm" class="well">
                <input type="hidden" id="eventID">
                <div class="form-group">
                    <label>Event title</label>
                    <input type="text" id="eventTitle"><br />
                </div>
                <div class="form-group">
                    <label>Scheduled date</label>
                    <input type="text" id="eventDate" readonly><br />
                </div>
                <div class="form-group">
                    <label>Scheduled time</label>
                    <input type="text" id="eventTime"><br />
                </div>
                <div class="form-group">
                    <label>Appointment length (minutes)</label>
                    <input type="text" id="eventDuration"><br />
                </div>
            </form>
        </div>
        <div class="modal-footer">
            <button type="button" id="btnPopupCancel" data-dismiss="modal" class="btn btn-mini">Cancel</button>
            <button type="button" id="btnPopupSave" data-dismiss="modal" class="btn btn-success ">Save event</button>
            @*<button type="button" id="btnPopupUpdate" data-dismiss="modal" class="btn btn-warning">Update event</button>*@
            <button type="button" id="btnPopupDelete" data-dismiss="modal" class="btn btn-danger right ">Delete event</button>
        </div>
    </div>
}

1 个答案:

答案 0 :(得分:1)

看起来您在If条件下获得了任何经过身份验证的用户。尝试将其更改为:

@if (User.Identity.IsAuthenticated && !User.IsInRole("Admin"))
{

仅获取非管理员身份验证的用户。

如果您指的是非管理员的任何人(经过身份验证或其他方式):

@if (!User.IsInRole("Admin"))
    {
相关问题