Хорошо, я разрабатываю веб-приложение с нуля. Я уже сделал пользовательские страницы входа и регистрации, используя простую базу данных из Tutorials Login и Registration. Теперь вот мой графический интерфейс или API, скажем, есть две программы " Программа А" и " Программа Б". Любой человек может посетить мой сайт HOMEPAGE и использовать программу A, но только аутентифицированный пользователь может использовать программу B по LOGIN(), то есть ссылка на программу B будет видна тем пользователям, которые являются LOGGED-IN.
Поэтому мне нужна помощь, чтобы сделать мою программу B безопасной, т.е. ее ссылки будут видны тем, кто находится в LOGGED-IN. Я хочу еще прояснить, что программа A Link и "Link B Link" оба закодированы на главной странице HomePage, поэтому вы не можете напрямую обращаться к программе B по простому URL. Надеюсь, вы получите то, что я пытаюсь сказать... ПОМОЩЬ !!! Ниже приведен мой код 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")
}
Вы можете использовать атрибут 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
Вы даже можете создать свой собственный атрибут Custom Authorize, пожалуйста, посмотрите здесь: -
http://msdn.microsoft.com/en-us/library/ee707357(v=vs.91).aspx