MVC 4 Только авторизовать пользователя должен войти на определенную страницу

1

Хорошо, я разрабатываю веб-приложение с нуля. Я уже сделал пользовательские страницы входа и регистрации, используя простую базу данных из 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")
}
Теги:
authentication
asp.net-mvc
asp.net-mvc-4
authorization

1 ответ

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

Вы даже можете создать свой собственный атрибут Custom Authorize, пожалуйста, посмотрите здесь: -

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

  • 0
    Простое добавление [авторизации] не делает работу. Еще одна вещь, которую я не понимаю, как эта платформа узнает, что пользователь авторизован, потому что я просто использую простое кодирование для сопоставления имени пользователя и пароля, ничего сложного.
  • 0
    Я полагаю, вы используете аутентификацию с помощью формы. Вы указали тип аутентификации в файле web.config? Вы можете опубликовать это здесь @WaqarAhmed?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню