2014-09-02 91 views
1

好吧,我正在從頭開發一些Web應用程序。我已經使用教程LoginRegistration的簡單數據庫創建了自定義登錄和註冊頁面。現在這裏是我的網站GUI或API,可以說有兩個程序程序A程序B。任何人都可以訪問我的網站的HOMEPAGE和使用程序A但只有經過身份驗證的用戶可以使用方案B通過LOGIN()即計劃B鏈接將是那些誰是登錄用戶可見。MVC 4只有授權用戶應該輸入特定頁面


所以我需要幫助才能讓我的程序B安全,即它的鏈接對於登錄的用戶是可見的。我想清除程序A鏈接和「程序B鏈接」兩者都編碼在主要主頁,所以你不能直接訪問程序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") 
} 

回答

2

您可以使用授權屬性,並且可以按照以下裝點你的代碼: -

[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

+0

只需添加[授權]是不是做工作。還有一件事我不明白這個框架將如何知道該用戶是被授權的,因爲我只是使用簡單的編碼來匹配用戶名和密碼,沒有太複雜的。 – 2014-09-02 11:39:37

+0

我想你使用表單身份驗證..你給你的web.config身份驗證類型?你可以在這裏發佈@WaqarAhmed嗎? – Neel 2014-09-02 11:40:46

+0

請仔細閱讀本教程的鏈接,以便您能夠正確理解我做了什麼,在這些步驟中與web.config無關。我沒有改變任何webconfig。 2014-09-02 11:42:59

相關問題