好的,我正在从头开发一些Web应用程序。我已经使用教程Login和Registration中的简单数据库创建了自定义登录和注册页面。现在这里是我的网站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")
}
答案 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