MVC 4 Only Authorize用户应进入特定页面

时间:2014-09-02 10:57:11

标签: c# asp.net-mvc asp.net-mvc-4 authentication authorization

好的,我正在从头开发一些Web应用程序。我已经使用教程LoginRegistration中的简单数据库创建了自定义登录和注册页面。现在这里是我的网站GUI或API,假设有两个程序程序A 程序B 。任何人都可以访问我网站的 HOMEPAGE 并使用计划A ,但只有经过身份验证的用户才能使用计划B 通过LOGIN(),即程序B链接将会显示对那些登录的用户。


所以我需要帮助才能使我的程序B安全,即它的链接对于登录的人来说是可见的。我想再清楚一点程序链接和“程序B链接”都在主主页上编码,所以你不能直接访问程序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")
}

1 个答案:

答案 0 :(得分:2)

您可以使用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