MVC 4仅授权用户';s应该进入特定页面

本文关键字:授权 用户 MVC | 更新日期: 2023-09-27 18:20:31

好的,我正在从头开始开发一些web应用程序。我已经使用教程登录和注册中的简单数据库制作了自定义登录和注册页面。现在是我的站点GUI或API,假设有两个程序程序A节目B。任何人都可以访问我网站的主页并使用程序A,但只有经过身份验证的用户才能通过LOGIN()使用程序B。即,LOGGED-IN用户可以看到程序B链接。


因此,我需要帮助确保我的程序B的安全,即它的链接将对登录的人可见。我想再澄清一件事,程序A链接和"程序B链接"都在主主页上编码,所以你不能仅通过URL直接访问节目B。我希望你明白我想说的。。。救命!!!下面是我的Login.cshtml代码

  @model FYPFinalTest3.Models.UserLogin
@{
    Layout = null;
}
<h2>Login</h2>
@using (Html.BeginForm("Login","Login", FormMethod.Post))
{
    //this  is for create form tag
    @Html.AntiForgeryToken()          // this is for prevent CSRF attack
    @Html.ValidationSummary(true)
    if (@ViewBag.Message != null)
    {
        <div style="border:1px solid red">
            @ViewBag.Message
        </div>
    }
    <table>
        <tr>
            <td>@Html.LabelFor(a=>a.Username)</td>
            <td>@Html.TextBoxFor(a=>a.Username)</td>
            <td>@Html.ValidationMessageFor(a=>a.Username)</td>
        </tr>
        <tr>
            <td>
                @Html.LabelFor(a=>a.Password)
            </td>
            <td>
                @Html.PasswordFor(a=>a.Password)
            </td>
            <td>
                @Html.ValidationMessageFor(a=>a.Password)
            </td>
        </tr>
        <tr>
            <td></td>
            <td>
                <input type="submit" value="Login" />
            </td>
            <td></td>
        </tr>
    </table>
}
@* This below line is for create javascript section *@
@section Scripts{
    @Scripts.Render("~/bundles/jqueryval")
}

MVC 4仅授权用户';s应该进入特定页面

您可以使用Authorize属性,并可以将代码装饰如下:-

[Authorize]
public class ProgramB:Controller
   {
     public ActionResult Method1()
     {
       return View();
     }
     [Authorize]
     public ActionResult Method2()
     {
       return View();
     }
   }

所以那个些并没有登录的用户将被重定向到登录页面。

更多详细信息:-

http://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute.aspx

您甚至可以创建自己的自定义授权属性,请查看此处:-

http://msdn.microsoft.com/en-us/library/ee707357(v=vs.91).aspx