2012-09-06 50 views
0

我有一個寫在剃鬚刀/ webmatrix這個場景的簡單形式。我希望用戶能夠通過foreach循環使用我的db.Query提供的登錄憑證登錄到外部網站。如果我不使用foreach循環,登錄工作。它只是從數據庫查詢返回第一行,然後登錄。當我添加foreach循環時,它將打開沒有任何憑據的登錄頁面。任何幫助,將不勝感激。我的代碼如下:從foreach循環(剃鬚刀/網絡矩陣)發佈登錄憑證

var selectQueryString = "SELECT user_id,password FROM user_table 
var user_row = db.Query(selectQueryString); 


    <form name="UpdateOrRac" method="POST" action="Login Page URL would be here">  

      @foreach (var row in user_row){ 
       <div> 
       <input name="txtUserID" value="@row.user_id" readonly="readonly" /> 
       <input name="txtPassword" value="@row.password" readonly="readonly" /> 
       <input type="submit" value="Login" /> 
        </div> 
      } 

    </form> 

回答

1

隨着foreach循環您的網頁發送到登錄頁面存儲在數據庫中集合所有用戶/密碼對。

我認爲你應該選擇一個用戶並填寫它的形式。 Somenthing像:

@{ 
    var db = Database.Open("MyDb"); 
    var selectQueryString = "SELECT user_id,password FROM user_table WHERE user_id = @0"; 
    var user_row = db.QuerySingle(selectQueryString, "YourUserName"); 
} 
<form name="UpdateOrRac" method="POST" action="Login.cshtml"> 
    <div> 
     <input name="txtUserID" value="@user_row.user_id" readonly="readonly" /> 
     <input name="txtPassword" value="@user_row.password" readonly="readonly" /> 
     <input type="submit" value="Login" /> 
    </div> 
</form> 

編輯

在回答您的意見,是的,但現在你的目標是清晰的。

要獲得acccounts與登錄的可能性的列表,最簡單的方法是使用一個鏈接到登錄頁面,查詢字符串與用戶名和密碼:

@{ 
    var db = Database.Open("MyDb"); 
    var selectQueryString = "SELECT user_id,password FROM user_table"; 
    var user_row = db.Query(selectQueryString); 
} 

<div> 
    @foreach(var row in user_row) 
    { 
     <p> 
      @row.user_id &nbsp;&nbsp; 
      @row.password &nbsp;&nbsp; 
      <a href="~/[email protected]_id&[email protected]">Login</a> 
     </p> 
    } 
</div> 

你可以傳遞數據在這個聲明中Login.cshtml頁:

var user = Request.QueryString["id"]; 
var pwrd = Request.QueryString["pwrd"]; 

如果安全是一個問題,你必須考慮GET和POST幾乎相同(看Is either GET or POST more secure than the other?

+0

感謝您的輸入。我想顯示用戶表中的所有用戶,並在每個用戶標識的右側顯示一個登錄按鈕。您的解決方案只會顯示在user_row變量中指定的用戶是否正確? – cholloway

+0

很棒@ user1600634,這讓我走上了正軌。我使用POST將數據發佈到登錄頁面。我將FORM操作指定爲「Login.cshtml?userid = @ row.user_id&password = @ row.password」。再次感謝。 – cholloway