从foreach循环发布登录凭据(razor / webmatrix)

时间:2012-09-06 16:30:04

标签: asp.net-mvc-3 razor webmatrix

我有一个用razor / webmatrix编写的这个场景的简单表单。我希望用户能够通过foreach循环使用我的db.Query提供的登录凭据登录到外部网站。如果我不使用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 个答案:

答案 0 :(得分: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> 

修改

回应你的评论,是的,但现在你的目标更明确了。

要获得可能登录的帐户列表,最简单的方法是使用带有用户ID和密码的查询字符串的“登录”页面的链接:

@{   
    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="~/Login?id=@row.user_id&pwrd=@row.password">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?